一、底層實(shí)現(xiàn)
1> AFN的底層基于OC的NSURLConnection和NSURLSession
2> ASI的底層基于純C語(yǔ)言的CFNetwork框架
3> ASI的運(yùn)行性能 高于 AFN
二、對(duì)服務(wù)器返回的數(shù)據(jù)處理
1> ASI沒(méi)有直接提供對(duì)服務(wù)器數(shù)據(jù)處理的方式,直接返回data\string
2> AFN提供了多種對(duì)服務(wù)器數(shù)據(jù)處理的方式
* JSON處理
* XML處理
* 其他處理
三、監(jiān)聽(tīng)請(qǐng)求的過(guò)程
1> AFN提供了success和failure兩個(gè)block來(lái)監(jiān)聽(tīng)請(qǐng)求的過(guò)程(只能監(jiān)聽(tīng)成功和失斎肟汀)(3.0以后添加了進(jìn)度)
* success : 請(qǐng)求成功后調(diào)用
* failure : 請(qǐng)求失敗后調(diào)用
2> ASI提供了3套方案,每一套方案都能監(jiān)聽(tīng)請(qǐng)求的完整過(guò)程
(監(jiān)聽(tīng)請(qǐng)求開(kāi)始、接收到響應(yīng)頭信息疤估、接受到具體數(shù)據(jù)灾常、接受完畢、請(qǐng)求失斪鋈埂)
* 成為代理岗憋,遵守協(xié)議,實(shí)現(xiàn)協(xié)議中的代理方法
* 成為代理锚贱,不遵守協(xié)議仔戈,自定義代理方法
* 設(shè)置block
四、在文件下載和文件上傳的使用難易度
1> AFN
* 不容易監(jiān)聽(tīng)下載進(jìn)度和上傳進(jìn)度
* 不容易實(shí)現(xiàn)斷點(diǎn)續(xù)傳
* 一般只用來(lái)下載不大的文件
2> ASI
* 非常容易實(shí)現(xiàn)下載和上傳
* 非常容易監(jiān)聽(tīng)下載進(jìn)度和上傳進(jìn)度
* 非常容易實(shí)現(xiàn)斷點(diǎn)續(xù)傳
* 下載或大或小的文件都行
五拧廊、ASI提供了更多的實(shí)用功能
1> 控制圈圈要不要在請(qǐng)求過(guò)程中轉(zhuǎn)
2> 可以輕松地設(shè)置請(qǐng)求之間的依賴:每一個(gè)請(qǐng)求都是一個(gè)NSOperation對(duì)象
3> 可以統(tǒng)一管理所有請(qǐng)求(還專門(mén)提供了一個(gè)叫做ASINetworkQueue來(lái)管理所有的請(qǐng)求對(duì)象)
* 暫停\恢復(fù)\取消所有的請(qǐng)求
* 監(jiān)聽(tīng)整個(gè)隊(duì)列中所有請(qǐng)求的下載進(jìn)度和上傳進(jìn)度