標籤:style blog http io color ar os 使用 sp
一、早前的幾個網路架構1、ASI架構: HTTP終結者.很牛, 但是有BUG, 已經停止更新.2、MKNetworkKit (印度人寫的).3、AFN一直還在更新.
AFNetworking的出現:MAC/iOS設計的一套網路架構.(為了簡化網路操作)
地址:https://github.com/AFNetworking/AFNetworking
*AFN專註與網路資料轉送,以及網路中多線程的處理.
二、AFNetworking的使用
1、AFN特性 :*登入傳參數時,傳遞字典即可.(鍵名為參數名,索引值為參數值).*自動到子線程中執行,執行完後返回主線程.*返回的結果自動序列化為NSDictionary. 2、使用AFN注意 :*AFHTTPRequestOperationManager封裝了通過HTTP協議與Web應用程式進行通訊的常用方法.(這個執行個體化的時候不是單例, 因為沒有shared字)*包括建立請求/響應序列化/網路監控/資料安全.*方法等都是以AF開頭的.
3、AFN能做的 (網路中的都涵蓋了):*GET/POST/PUT/DELETE/HEAD請求.*JSON資料解析/Plist資料解析.(不支援XML資料解析)*POSTJSON.*上傳/下載.
4、使用步驟 : (可參考說明文檔)
1.首先需要執行個體化一個要求管理器AFHTTPRequestOperationManager.
2.佈建要求的資料格式:預設是二進位.(不是可改)*AFHTTPRequestSerializer(二進位)*AFJSONRequestSerializer(JSON)*AFPropertyListRequestSerializer(Plist)
3.設定響應的資料格式:預設是JSON.(不是可改)*AFHTTPResponseSerializer(二進位)*AFJSONResponseSerializer(JSON)*AFPropertyListResponseSerializer(Plist)*AFXMLParserResponseSerializer(XML)*AFImageResponseSerializer(Image)*AFCompoundResponseSerializer(組合的)
4.如果響應者的MIMEType不正確,就要修改acceptableContentTypes.
5.調用方法,發送響應的請求(GET/POST...).
AFN進行GET、POST請求:
1 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];2 manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];3 [manager GET:@"http://www.weather.com.cn/data/sk/101010100.html" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {4 NSLog(@"JSON: %@", responseObject);5 } failure:^(AFHTTPRequestOperation *operation, NSError *error) {6 NSLog(@"Error: %@", error);7 }];
結果為:
2014-11-05 17:08:26.219 TestAFNetWorking[27957:70b] JSON: {
weatherinfo = {
Radar = "JC_RADAR_AZ9010_JB";
SD = "20%";
WD = "\U897f\U5357\U98ce";
WS = "2\U7ea7";
WSE = 2;
city = "\U5317\U4eac";
cityid = 101010100;
isRadar = 1;
njd = "\U6682\U65e0\U5b9e\U51b5";
qy = 1014;
temp = 17;
time = "16:45";
};
}
ios網路開發 AFNetworking