首页 > 代码库 > AFNetworking形式-与-NSURLConnection形式的网络请求
AFNetworking形式-与-NSURLConnection形式的网络请求
一:NSURLConnection网络请求
NSOperationQueue *queue = [[NSOperationQueue alloc] init];// 异步方法[NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"%@", str);}];
二:AFNetworking形式网络请求
1.方法一
// 使用AFNetworking 2.0框架的网络请求
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];manager.requestSerializer.timeoutInterval = 30;manager.responseSerializer = [AFJSONResponseSerializer serializer];manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"]; // 很多后台格式问题用此行解决,不一定必须// httpBody// NSDictionary *httpBodyParameters = @{@"http": @"body"};
// kJsonSourceURLAddress请求地址[manager GET:kJsonSourceURLAddress_1 parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {// NSDictionary *jsonDict = (NSDictionary *)responseObject;// [self displayWithParsedDic:jsonDict]; } failure:^(AFHTTPRequestOperation *operation, NSError *error) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"错误" message:[NSString stringWithFormat:@"%@", error] delegate:nil cancelButtonTitle:@"关闭" otherButtonTitles:nil, nil]; [alert show];}];
2.方法二
NSURL *url = [NSURL URLWithString:kJsonSourceURLAddress_1];NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30];// NSMutableURLRequest *test = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:kJsonSourceURLAddress_1 parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {// // TODO 文件上传//// [formData appendPartWithFileData:<#(NSData *)#> name:<#(NSString *)#> fileName:<#(NSString *)#> mimeType:<#(NSString *)#>]// }];// // 网络GET请求// NSMutableURLRequest *requestGet = [NSMutableURLRequest requestWithURL:url];// requestGet.HTTPMethod = @"GET";// requestGet.timeoutInterval = 30;//// // 网络POST请求// NSMutableURLRequest *requestPost = [NSMutableURLRequest requestWithURL:url];// requestPost.HTTPMethod = @"POST";// requestPost.timeoutInterval = 30;// NSData *httpBody = [kJsonSourceURLAddress_1 dataUsingEncoding:NSUTF8StringEncoding];// NSLog(@"%@", httpBody);// requestPost.HTTPBody = httpBody;AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest];operation.responseSerializer = [AFJSONResponseSerializer serializer];// 很多后台格式问题用此行解决,不一定必须operation.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {// NSLog(@"%@", responseObject); NSDictionary *jsonDict = (NSDictionary *)responseObject; [self displayWithParsedDic:jsonDict]; } failure:^(AFHTTPRequestOperation *operation, NSError *error) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"错误" message:[NSString stringWithFormat:@"%@", error] delegate:nil cancelButtonTitle:@"关闭" otherButtonTitles:nil, nil]; [alert show];}];// 上传进度// [operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {//// }];[[NSOperationQueue mainQueue] addOperation:operation];
补充:系统自带的json解析
// json数据解析成NSDictionaryNSDictionary *parseData = [NSJSONSerialization JSONObjectWithData:_jsonData options:NSJSONReadingMutableLeaves error:&error];// NSDictionary转换成json()NSData *jsonData = http://www.mamicode.com/[NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil];
AFNetworking形式-与-NSURLConnection形式的网络请求
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。