AFNetworking的實現(xiàn)原理

以下就是cocospod中AFNetworing除了幾個分類外的所有類王悍。類庫的頭文件AFNetworking.h引入了下面的所有類庫棋弥,并可以根據(jù)不同的系統(tǒng)使用不同的實現(xiàn)方式贷岸。下面大體介紹下每個類的大致作用忘巧,主要以翻譯API的注釋文檔為主曲横。

1.AFURLConnectionOperation
可以說是AFN最基礎的類。繼承自NSOperation類踩蔚,將網(wǎng)絡請求依附到一個operation上。從而讓我們能夠有效的控制并觀察一個網(wǎng)絡請求的創(chuàng)建枚粘、進行馅闽、取消、完成、暫透R玻恢復局骤、異常等問題及狀態(tài)。

2.AFHTTPRequestOperation
HTTP或HTTPS協(xié)議請求的AFURLConnectionOperation的子類暴凑。它封裝的可接受狀態(tài)碼和內(nèi)容的類型峦甩,判定一個請求結果是成功或失敗。
實際上對系統(tǒng)的HTTP網(wǎng)絡請求增加了幾個HTTP需要用到的參數(shù)现喳。

3.AFHTTPRequestOperationManager
這個類是AFN類庫的核心類凯傲。它封裝完成了一種通用的模式,可以幫助我們輕松友好的完成請求的創(chuàng)建嗦篱、響應的系列化冰单,網(wǎng)絡狀態(tài)的監(jiān)控以及安全策略以及每一個請求operation的管理(operation的相互依賴或狀態(tài)改變)。

4.AFURLSessionManager
iOS7 之后灸促,蘋果增加了新的網(wǎng)絡請求類--NSURLSession诫欠。AFN官方推薦iOS 7 或者 Mac OS X 10.9以上的,最好使用該類發(fā)起網(wǎng)絡請求浴栽,取代AFHTTPRequestOperationManager荒叼。不過基于目前國內(nèi)app大都最低適配的 iOS6,該類的用途還不是太廣泛典鸡。NSURLSession的說明或者使用不再贅述被廓。自行查看API文檔。以后有時間再加上該類的使用椿每。

5: AFURLSessionManager
繼承自AFURLSessionManager伊者。類似于1和2的關系。也是方便HTTP以及https請求的使用间护,增加了一些接口亦渗,方便調(diào)用。

6:AFNetworkReachabilityManager
網(wǎng)絡的連通狀態(tài)監(jiān)控以及網(wǎng)絡的類型汁尺。實際是將蘋果官方提供的Reachability的類名和通知名更換了一下法精,防止和系統(tǒng)提供的類的通知名以及類名的沖突。

7.AFSecurityPolicy
這個我不太懂痴突,安全策略的類搂蜓。一般貌似用不到,有需要自行google辽装。

8.AFURLRequestSerialization
①:符合這個協(xié)議的對象用于處理請求帮碰,它將請求參數(shù)轉(zhuǎn)換為 query string 或是 entity body 的形式,并設置必要的 header拾积。
②:構建multipart請求殉挽。

9.AFURLResponseSerialization
遵循AFURLResponseSerialization協(xié)議的對象丰涉,用于驗證、序列化響應及相關數(shù)據(jù)斯碌,轉(zhuǎn)換為有用的形式一死,比如 JSON 對象、圖像傻唾、甚至基于mantle的模型對象投慈。

AFHTTPRequestOperationManger

①:綜述
這個類可以說是整個類庫的核心類了。據(jù)說AFN2.0之前的時候冠骄,所有的網(wǎng)絡請求相關的設置都雜糅到一個client中伪煤,導致client特別的臃腫。2.0后猴抹,AFN將一些設置提取出來带族,線程了專門的類【AFSecurityPolicy、AFURLRequestSerialization蟀给、AFURLResponseSerialization】◎觯現(xiàn)在看來,AFN整體的設計是非常完美的跋理。耦合性變得非常低择克,一些1.0版本中存在的問題也得到了改善。

②:實現(xiàn)文件.m
實現(xiàn)文件較為簡單前普,可以看到他創(chuàng)建了一個隊列肚邢。并將各個operation加入到隊列中。在隊列中拭卿,各個請求就可以設置依賴關系骡湖,并發(fā)的數(shù)量等等。

③:接口文件.h
接口文件中峻厚,我們可以看到响蕴。這個類可以設置AFSecurityPolicy、AFURLRequestSerialization惠桃、AFURLResponseSerialization 等參數(shù)了浦夷。這就是綜述所說的降低耦合性的方式」纪酰基本使用很簡單劈狐,這里就不再贅述了。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末呐馆,一起剝皮案震驚了整個濱河市肥缔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌汹来,老刑警劉巖续膳,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怒见,死亡現(xiàn)場離奇詭異,居然都是意外死亡姑宽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門闺阱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炮车,“玉大人,你說我怎么就攤上這事酣溃∈菽拢” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵赊豌,是天一觀的道長扛或。 經(jīng)常有香客問我,道長碘饼,這世上最難降的妖魔是什么熙兔? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮艾恼,結果婚禮上住涉,老公的妹妹穿的比我還像新娘。我一直安慰自己钠绍,他們只是感情好舆声,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著柳爽,像睡著了一般媳握。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上磷脯,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天蛾找,我揣著相機與錄音,去河邊找鬼争拐。 笑死腋粥,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的架曹。 我是一名探鬼主播隘冲,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼绑雄!你這毒婦竟也來了展辞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤万牺,失蹤者是張志新(化名)和其女友劉穎罗珍,沒想到半個月后洽腺,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡覆旱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年蘸朋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扣唱。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡藕坯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出噪沙,到底是詐尸還是另有隱情炼彪,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布正歼,位于F島的核電站辐马,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏局义。R本人自食惡果不足惜喜爷,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望旭咽。 院中可真熱鬧贞奋,春花似錦、人聲如沸穷绵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仲墨。三九已至勾缭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間目养,已是汗流浹背俩由。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留癌蚁,地道東北人幻梯。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像努释,于是被迫代替她去往敵國和親碘梢。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容