以下就是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ù)了浦夷。這就是綜述所說的降低耦合性的方式」纪酰基本使用很簡單劈狐,這里就不再贅述了。