AFNetWorking基于系統(tǒng)NSURLConnection和NSURLSession實(shí)現(xiàn)的,也是基于CFNetWork的,AFN回調(diào)采用Block,使用方便。
自己的網(wǎng)絡(luò)庫(kù):當(dāng)?shù)谌綆?kù)發(fā)生重大更新的時(shí)候?qū)е挛覀兪置δ_亂
get請(qǐng)求的實(shí)現(xiàn)流程:
//使用代碼
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager GET:url parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {
//成功
NSDictionary *obj = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
} failure:^(NSURLSessionDataTask *task, NSError *error) {
//失敗
}];

1當(dāng)我們調(diào)用get函數(shù)之前,我們需要?jiǎng)?chuàng)建一個(gè)AFHTTPSessionManager,在之前我們使用的一般是AFHTTPRequestOperationManager.
2在調(diào)用get請(qǐng)求后,我們一般都不需要干什么了,因?yàn)槟切┓爆崗?fù)雜的網(wǎng)絡(luò)通信都交給他去做了,他首先會(huì)調(diào)用AFNetworkReachabilityManager驗(yàn)證是否聯(lián)網(wǎng).
3然后參數(shù)序列化,用于網(wǎng)絡(luò)請(qǐng)求.
4調(diào)用AFSecurityPolicy類(lèi),AFSecurityPolicy用于驗(yàn)證HTTPS請(qǐng)求的證書(shū),簡(jiǎn)單來(lái)說(shuō)建立連接.具體建立步驟參照博客.
5連接建立完成,證書(shū)驗(yàn)證成功,開(kāi)始請(qǐng)求服務(wù)器.
6從服務(wù)器返回?cái)?shù)據(jù),解析服務(wù)器數(shù)據(jù),將數(shù)據(jù)反序列化.
7我們得到data類(lèi)型的數(shù)據(jù),可以使用JSON解析直接解析成字典使用.
在這實(shí)現(xiàn)過(guò)程中他還幫我們做了開(kāi)線程,異步下載,檢查數(shù)據(jù)是否合法,圖片解壓等一些繁瑣的事情