AFNetworking簡(jiǎn)述

AF的代碼結(jié)構(gòu)大部分人應(yīng)該都了解,這里梳理,整體代碼有這么幾部分:

  • AFURLSessionManager/AFHTTPSessionManager

    這里就是AF代碼的核心了,主要負(fù)責(zé)網(wǎng)絡(luò)請(qǐng)求的發(fā)起,回調(diào)處理,是在系統(tǒng)網(wǎng)絡(luò)相關(guān)API上的一層封裝。大部分邏輯是在AFURLSessionManager里面處理的,AFHTTPSessionManager則是專(zhuān)為HTTP請(qǐng)求提供了一些便利方法。如果需要擴(kuò)展其他協(xié)議的功能(比如FTP協(xié)議),可以考慮從AFURLSessionManager創(chuàng)建一個(gè)子類(lèi)。

  • AFURLRequestSerialization/AFURLResponseSerialization

    這兩兄弟主要處理一些參數(shù)序列化相關(guān)的工作。AFURLRequestSerialization是將傳入的參數(shù)構(gòu)造成NSURLRequest,比如自定義的header,一些post或者get參數(shù)等等。 AFURLResponseSerialization主要是將系統(tǒng)返回的NSURLResponse處理成我們需要的responseObject,比如json、xml、image等等

  • AFSecurityPolicy

    處理https相關(guān)的公鑰和驗(yàn)證邏輯。目前由于蘋(píng)果ATS的開(kāi)啟,基本HTTPS已經(jīng)成為標(biāo)配。雖然通常直接使用CA來(lái)驗(yàn)證服務(wù)器公鑰的情況下,不需要我們額外做什么配置。但是從這里出發(fā),順便考察一下HTTPS相關(guān)的知識(shí)點(diǎn),感覺(jué)也比較常見(jiàn),具體面試題可看下文

  • AFNetworkReachabilityManager

    這個(gè)其實(shí)是比較獨(dú)立的一個(gè)模塊了,提供獲取當(dāng)前網(wǎng)絡(luò)狀態(tài)的功能。

  • UIKit+AFNetworking

    這里主要是通過(guò)Category來(lái)提供了一下UIkit的便利方法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容