NSMutableURLRequest Http 请求 同步 异步
#pragma mark get country code//同步 -(void)getFKjsonCountryCode { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSString *urlString = [NSString stringWithFormat:@"http://www.baidu.com"]; NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; [request setURL:[NSURL URLWithString:urlString]]; [request setHTTPMethod:@"POST"]; //post [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; [request setValue:@"ios" forHTTPHeaderField:@"X-Channel"]; [request setValue:@"1000" forHTTPHeaderField:@"X-APP-ID"]; NSHTTPURLResponse* urlResponse = nil; NSError *error = nil; NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error]; //NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; NSDictionary *countryDic = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:&error]; if ([urlResponse statusCode] >= 200 && [urlResponse statusCode] < 300) { NSMutableArray * countryArr = [[countryDic objectForKey:@"data"]objectForKey:@"phone_codes"]; if(countryArr) { for(int i = 0; i<[countryArr count]; i++) { NSLog(@"countryCode:%@ %@",[[countryArr objectAtIndex:i]objectForKey:@"country"],[[countryArr objectAtIndex:i]objectForKey:@"code"]); } } // NSLog(@"12:%@",[[[[weatherDic objectForKey:@"data"]objectForKey:@"phone_codes"]objectAtIndex:0]objectForKey:@"country"]); } else { } }); }
#pragma mark get country code //异步 -(void)getFKjsonCountryCodeAsync { NSString *urlString = [NSString stringWithFormat:@"http://www.baidu.com"]; // 初始化请求 NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; // 设置 [request setURL:[NSURL URLWithString:urlString]]; [request setCachePolicy:NSURLRequestUseProtocolCachePolicy]; // 设置缓存策略 [request setTimeoutInterval:20.0]; // 设置超时 [request setHTTPMethod:@"POST"]; //...... // receivedData = [[NSMutableData alloc] initData: nil]; NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; if (connection == nil) { NSLog(@"errors"); // 创建失败 return; } } // 收到回应 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { NSLog(@"receive the response"); } // 接收数据 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { NSError *error = nil; NSDictionary *countryDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error]; NSMutableArray * countryArr = [[countryDic objectForKey:@"data"]objectForKey:@"phone_codes"]; if(countryArr) { for(int i = 0; i<[countryArr count]; i++) { NSLog(@"countryCode:%@ %@",[[countryArr objectAtIndex:i]objectForKey:@"country"],[[countryArr objectAtIndex:i]objectForKey:@"code"]); } } } // 数据接收完毕 - (void)connectionDidFinishLoading:(NSURLConnection *)connection { NSLog(@"finishLoading"); } // 返回错误 -(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { NSLog(@"Connection failed: %@", error); }