清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
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); }];