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