一、底層實現(xiàn)
1泛范、AFN的底層實現(xiàn)基于OC的NSURLConnection和NSURLSession
2我磁、ASI的底層實現(xiàn)基于純C語言的CFNetwork框架
3盅弛、因為NSURLConnection和NSURLSession是在CFNetwork之上的一層封裝,因此ASI的運行性能高于AFN
AFNetworking的下載地址: https://github.com/AFNetworking/AFNetworking
二真友、對服務(wù)器返回的數(shù)據(jù)處理
1黄痪、ASI沒有直接提供對服務(wù)器數(shù)據(jù)處理的方式,直接返回的是NSData/NSString
2盔然、AFN提供了多種對服務(wù)器數(shù)據(jù)處理的方式
(1)JSON處理-直接返回NSDictionary或者NSArray
(2)XML處理-返回的是xml類型數(shù)據(jù)桅打,需對其進(jìn)行解析
(3)其他類型數(shù)據(jù)處理
三、監(jiān)聽請求過程
1愈案、AFN提供了success和failure兩個block來監(jiān)聽請求的過程(只能監(jiān)聽成功和失斖ξ病)
- success : 請求成功后調(diào)用
- failure : 請求失敗后調(diào)用
2、ASI提供了3套方案站绪,每一套方案都能監(jiān)聽請求的完整過程
(監(jiān)聽請求開始遭铺、接收到響應(yīng)頭信息、接受到具體數(shù)據(jù)崇众、接受完畢掂僵、請求失敗) - 成為代理顷歌,遵守協(xié)議锰蓬,實現(xiàn)協(xié)議中的代理方法
- 成為代理,不遵守協(xié)議眯漩,自定義代理方法
- 設(shè)置block
四芹扭、在文件下載和文件上傳的使用難易度
1、AFN
*不容易實現(xiàn)監(jiān)聽下載進(jìn)度和上傳進(jìn)度
*不容易實現(xiàn)斷點續(xù)傳
*一般只用來下載不大的文件
2赦抖、ASI
*非常容易實現(xiàn)下載和上傳
*非常容易監(jiān)聽下載進(jìn)度和上傳進(jìn)度
*非常容易實現(xiàn)斷點續(xù)傳
*下載大文件或小文件均可
3舱卡、實現(xiàn)下載上傳推薦使用ASI
五、網(wǎng)絡(luò)監(jiān)控
1队萤、AFN自己封裝了網(wǎng)絡(luò)監(jiān)控類轮锥,易使用
2、ASI使用的是Reachability要尔,因為使用CocoaPods下載ASI時舍杜,會同步下載Reachability新娜,但Reachability作為網(wǎng)絡(luò)監(jiān)控使用較為復(fù)雜(相對于AFN的網(wǎng)絡(luò)監(jiān)控類來說)
3、推薦使用AFN做網(wǎng)絡(luò)監(jiān)控-AFNetworkReachabilityManager
六既绩、ASI提供的其他實用功能
1概龄、控制信號旁邊的圈圈要不要在請求過程中轉(zhuǎn)
2、可以輕松地設(shè)置請求之間的依賴:每一個請求都是一個NSOperation對象
3饲握、可以統(tǒng)一管理所有請求(還專門提供了一個叫做ASINetworkQueue來管理所有的請求對象)
- 暫停\恢復(fù)\取消所有的請求
- 監(jiān)聽整個隊列中所有請求的下載進(jìn)度和上傳進(jìn)度
原創(chuàng)地址
http://blog.csdn.net/aptx84869/article/details/43966655