AFNetWorking原始碼詳解(二)

發表於2016-07-10

AFHTTPSessionManager繼承於AFURLSessionManager,提供了更方便的HTTP請求方法,包括了GET、POST、PUT、PATCH、DELETE這五種方式,並且AF鼓勵我們在AFHTTPSessionManager再進行一次封裝來滿足我們自己的業務需求


在開始的地方,AF一直提醒到一個屬性baseURL,這個變數你可以在進一步封裝的時候,將baseURL寫成你自己的HTTP請求原始地址,比如

在對baseURL進行拼接的時候,也需要注意一下幾點,防止出現請求的URL出現問題

在初始化的方法裡面,我們看到這個方法

NS_DESIGNATED_INITIALIZER的作用是什麼呢?
指定的構造器通過傳送初始化訊息到父類來保證object被完全初始化,指定構造器有以下幾個規則:

1.指定構造器必須呼叫父類的指定構造器

2.任何一個便利構造器必須呼叫最終指向指定構造器的其他構造器

3.具有指定構造器的類必須實現父類的所有指定構造器

DEPRECATED_ATTRIBUTE這個相信大家見得比較多了,字面意思就是這個API不建議開發者再使用了,再使用時,會出現編譯警告


下面POST、GET、PUT、PATCH、DELETE方法傳參基本都是大同小異

URLString表示請求的URL,parameters表示客戶端請求內容的儲存器,progress表示請求的進度,constructingBodyWithBlock裡面只有一個formData用來拼接到HTTP的請求體,success表示請求成功後的block回撥,failure表示請求失敗的block回撥

那麼這幾個請求有什麼區別呢?

1、POST請求是向服務端傳送資料的,用來更新資源資訊,它可以改變資料的種類等資源

2、GET請求是向服務端發起請求資料,用來獲取或查詢資源資訊

3、PUT請求和POST請求很像,都是傳送資料的,但是PUT請求不能改變資料的種類等資源,它只能修改內容

4、DELETE請求就是用來刪除某個資源的

5、PATCH請求和PUT請求一樣,也是用來進行資料更新的,它是HTTP verb推薦用於更新的

在實際開發過程中,我們還是使用POST和GET請求是最多的


在請求實現的部分,都是呼叫了-[dataTaskWithHTTPMethod:URLString:parameters:uploadProgress:downloadProgress:success:failure]方法建立NSURLSessionDataTask物件

傳參的內容基本都是和上一層方法一樣,method指的就是請求的型別

 

相關文章