afn原理 ios iOS AFN實現原理

2021-10-17 04:44:54 字數 4276 閱讀 7859

- (nsurlsessiondatatask *)datataskwithrequest:(nsurlrequest *)request completionhandler:(void (^)(nsurlresponse *response, id responseobject, nserror *error))completionhandler

* request:請求物件

* completionhandler:請求完成呼叫的block

* response:伺服器的響應資訊

* responseobject:伺服器返回的資料

* error:錯誤資訊

上傳任務(分別上傳不同型別的檔案)

// 1.上傳檔案型別的資料

* fileurl:所要上傳檔案的路徑

- (nsurlsessionuploadtask *)uploadtaskwithrequest:(nsurlrequest *)request fromfile:(nsurl *)fileurl progress:(nsprogress * __autoreleasing *)progress completionhandler:(void (^)(nsurlresponse *response, id responseobject, nserror *error))completionhandler

// 2. 上傳nsdata型別的資料

- (nsurlsessionuploadtask *)uploadtaskwithrequest:(nsurlrequest *)request fromdata:(nsdata *)bodydata progress:(nsprogress * __autoreleasing *)progress completionhandler:(void (^)(nsurlresponse *response, id responseobject, nserror *error))completionhandler

* bodydata:所要上傳的檔案資料

// 3. 上傳流資料

- (nsurlsessionuploadtask *)uploadtaskwithstreamedrequest:(nsurlrequest *)request progress:(nsprogress * __autoreleasing *)progress completionhandler:(void (^)(nsurlresponse *response, id responseobject, nserror *error))completionhandler

* request:通過流資料初始化的請求物件

- (nsurlsessiondownloadtask *)downloadtaskwithrequest:(nsurlrequest *)request progress:(nsprogress * __autoreleasing *)progress destination:(nsurl * (^)(nsurl *targetpath, nsurlresponse *response))destination completionhandler:(void (^)(nsurlresponse *response, nsurl *filepath, nserror *error))completionhandler

* destination:儲存資料呼叫的block

* targetpath:資料的儲存路徑

常用的屬性

baseurl(nsurl *),用於監視網路可達性與建立請求物件

requestserializer(afhttprequestserializer *),指定指定get、head與delete請求引數的解析格式

responseserializer(afhttpresponseserializer *),用於指定伺服器返回資料的格式

常用方法

初始化// 1. 通過工廠方法建立afhttpsessionmanager物件

+ (instancetype)manager

// 2. 通過構造方法建立afhttpsessionmanager物件

- (instancetype)initwithbaseurl:(nsurl *)url

* 根據url初始化afhttpsessionmanager物件

- (instancetype)initwithbaseurl:(nsurl *)url sessionconfiguration:(nsurlsessionconfiguration *)configuration

* 根據url與configuration初始化afhttpsessionmanager物件

請求資料

// 1. get請求

- (nsurlsessiondatatask *)get:(nsstring *)urlstring parameters:(id)parameters success:(void (^)(nsurlsessiondatatask *task, id responseobject))success failure:(void (^)(nsurlsessiondatatask *task, nserror *error))failure

* urlstring:請求路徑

* parameters:請求引數

* success:請求成功時呼叫的block

* responseobject:伺服器返回的資料

* failure:請求失敗時呼叫的block

* error:錯誤資訊

// 2. post請求

- (nsurlsessiondatatask *)post:(nsstring *)urlstring parameters:(id)parameters success:(void (^)(nsurlsessiondatatask *task, id responseobject))success failure:(void (^)(nsurlsessiondatatask *task, nserror *error))failure

*引數含義與get請求相同

- (nsurlsessiondatatask *)post:(nsstring *)urlstring parameters:(id)parameters constructingbodywithblock:(void (^)(id formdata))block success:(void (^)(nsurlsessiondatatask *task, id responseobject))success failure:(void (^)(nsurlsessiondatatask *task, nserror *error))failure

使用afn請求網路資料

請求資料(xml/json)

建立afhttpsessionmanager物件

指定對伺服器的返回資料格式

//以xml文件的形式返回資料

manager.responseserializer = [afxmlparserresponseserializer serializer];

//以json形式返回資料

manager.responseserializer = [afjsonresponseserializer serializer];

設定請求體(型別為xml或json)

//請求體通常由伺服器指定格式

nsdictionary *params = @ failure:^(nsurlsessiondatatask *task, nserror *error) success:^(nsurlsessiondatatask *task, id responseobject) failure:^(nsurlsessiondatatask *task, nserror *error) completionhandler:^(nsurlresponse *response, nsurl *filepath, nserror *error) {

afn原理 ios iOS開發 AFN的基本使用

因為專案中需要用到一些第三方框架來搞定基本需求,再次總結一番.我的專案是瀏覽器工具,所以對網路請求處理需要做很多特別處理,這也就構成了對afn及asi庫的深究 1.afn全稱為 afnetworking 是乙個構建在nsurlconnection,nsoperation以及其他熟悉的founatio...

AFN原理及常用方法

nsurlsession,主要物件nsurlsession物件進行了進一步的封裝,包含以下核心的類 reachability,提供了與網路狀態相關的操作介面,包含以下核心的類 security,提供了與安全性相關的操作介面,包含以下核心的類 serialization,提供了與解析資料相關的操作介面...

gcForest演算法原理及Python實現

1.背景介紹 從目前來看深度學習大多建立在多層的神經網路基礎上,也即一些引數化的多層可微的非線性模組,這樣就可以通過後向傳播去訓練,zhi hua zhou和ji feng在deep forest 中基於不可微的模組建立深度模組,這就是gcforest。傳統的深度學習有一定的弊端 超引數個數較多,訓...