天天看點

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

網絡請求的基本知識 我們網絡請求用的是http請求

http請求格式:請求的方法,請求頭,請求正文

http請求的request fields:請求的頭部,以及被請求頭部的一些設定

http請求的response fields:請求的回複頭,通過回複頭可以了解伺服器給我們的一些狀态資訊。

擷取這個源碼後,解壓後直接拖拽進建立的single view工程:

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

然後在viewcontroller.m檔案中import "afnetworking.h",接着在network.h找到get請求:

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

按cmd結合滑鼠點選"get"就可以進入networking.m的get的具體實作:

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

然後把這個get方法中實作的部分 複制 ,因為我們需要這些代碼裡的一些參數。複制到viewcontroller.h的viewdidload方法裡:

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

然後删除不需要的代碼:

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

添加網址和修改了一點點代碼:

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記
網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記
網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

再修改了一點代碼:

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記
網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記
網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記
網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

運作之後就能列印出網頁資料。

經過一個簡單的執行個體後,講講http的請求格式:

// = http請求格式 =

// ------------------------------

// * 請求方法 (get、post等) *

// * 請求頭 (httpheaderfields) *

// * 請求正文 (資料) *

首先需要知道的是請求方法,有很多請求方法,其中最常用的是get、post方法,上面的執行個體使用的是get請求,如果改為post請求:

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

其它和get請求一樣:

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

然後運作就同樣可以有資料結果。同時說明,那個網站即支援get請求,也支援post請求。

好,上面講的就是請求的方法,下面講講請求頭是什麼?

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

我們發送請求的時候,伺服器怎麼知道請求的裝置是蘋果手機還是安卓手機,其實在發送給伺服器的標頭資訊,就自動的把我門的裝置資訊寫進去了。請看上面圖裡的"user-agent"的資訊,它就是我的模拟器裝置的資訊。這個資訊也是可以自己修改的。這個修改到後面會講到。

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

對照:

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

accept-language用的是en英語,我們代碼的標頭請求資訊還包括 zh中文 。

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

這個關系到使用者的資訊。

上面就是請求頭部的資訊,下面講講伺服器傳回給我們的狀态資訊:

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

在那個維基百科的網頁裡也是有相關的response fields清單的:

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

這些很多資訊可以參考維基百科的這個網址進行參考,進而可以了解所請求的伺服器的頭部的資訊。而且其中已經顯示了這個網址是可以進行get和post請求:

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

通過這個請求頭部資訊,可以幫助我們 了解 為什麼 我們請求不成功。

最後講講請求的正文:

我們怎麼知道請求的正文是什麼呢?請求的正文就是我們需要攜帶的資料:

隻這裡我們隻需要看這行代碼:

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

注意 ? 前面的就是網址,而 ? 後面的是請求攜帶的參數,這些參數就是正文。然後我們把這部分正文 寫進 代碼 中,然後删掉urlstr中的這部分正文:

網絡請求的基本知識《極客學院 --AFNetworking 2.x 網絡解析詳解--1》學習筆記

最後顯示的是 cod=404表示出錯了,然後我們把它改為get請求,然後就成功了。

說明這個網址雖然 標頭 資訊告訴我們可以用get和post請求,但是通過post給我們傳回的是404的錯誤資訊。

以上上面講到的三點基礎知識點 需要熟悉。