AFNetworking類庫使用示例

jopen 9年前發布 | 9K 次閱讀 Objective-C

AFNetworking對NSURLConnection和NSURLSession進行了封裝. 下面分別用這兩種方法請求數據 網址是 用來請求JSON數據的網址.

   NSString *urlPath = @"http://10.0.8.8/sns/my/user_list.php";

//  AFNetworking VS ASI 最大的優勢是 有ARC支持

//  AFNetworking目標是趕上ASI, AFNetworking致辭NSURLConnection和NSURLSession

//  AFNetworking是使用NSURLConnection 和 NSURLSession

//  #improt "AFNetworking.h"



//1.使用 NSURLConnection版本的AFNetworking

//1.1創建一個AFN管理對象

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];



//1.2告訴manager只下載原始數據, 不要解析數據(一定要寫)

//     AFN即可以下載網絡數據, 又可以解析json數據,如果不寫下面的  自動就解析json

//     由于做服務器的人返回json數據往往不規范, 凡是AFN又檢查很嚴格,導致json解析往往失敗

//     下面這句話的意思是 告訴AFN千萬別解析, 只需要給我裸數據就可以

manager.responseSerializer = [AFHTTPResponseSerializer serializer];



//1.3使用GET下載數據

NSDictionary *params = @{@"page" : @"2"};//表示第幾頁

[manager GET:urlPath parameters:params success:

 ^(AFHTTPRequestOperation *operation, id responseObject) {

     NSData *data = operation.responseData;

     NSDictionary *dict = [NSJSONSerialization  JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

     NSLog(@"parase json is%@",dict);

 } 

 failure:^(AFHTTPRequestOperation *operation, NSError *error) {

     NSLog(@"下載錯誤 is %@",error);

}];








//2.使用NSURLSession版本的AFNetworking

//2.1創建一個AFN管理對象

AFHTTPSessionManager *smanager = [AFHTTPSessionManager manager];



//2.2告訴manager只下載原始數據, 不要解析數據(一定要寫

smanager.responseSerializer = [AFHTTPResponseSerializer serializer];



//2.3使用GET下載數據

[smanager GET:urlPath parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {

    NSData *data = responseObject;

    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

    NSLog(@"parase session is %@",dict);

} failure:^(NSURLSessionDataTask *task, NSError *error) {

    NSLog(@"下載錯誤 %@",error);

}];


</pre>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!