标签:
/*
网络请求的流程:
1.构造NSURL连接地址
2.构造NSURLRequest请求对象,包含请求头和请求体信息。
3.构造NSURLSessionConfiguration,可选
4.构造NSURLSession会话对象
5.创建请求任务
6.发送网络请求
*/
1 // 2 // ViewController.m 3 // 01-NSURLSession请求网络 4 // 5 // 6 7 #import "ViewController.h" 8 9 @interface ViewController () 10 11 @end 12 13 @implementation ViewController 14 15 - (void)viewDidLoad { 16 [super viewDidLoad]; 17 18 } 19 20 - (IBAction)getAction:(id)sender { 21 22 /* 23 网络请求的流程: 24 1.构造NSURL连接地址 25 2.构造NSURLRequest请求对象,包含请求头和请求体信息。 26 3.构造NSURLSessionConfiguration,可选 27 4.构造NSURLSession会话对象 28 5.创建请求任务 29 6.发送网络请求 30 31 */ 32 33 NSURL *url = [NSURL URLWithString:@"http://piao.163.com/m/cinema/list.html?app_id=1&mobileType=iPhone&ver=2.6&channel=appstore&deviceId=9E89CB6D-A62F-438C-8010-19278D46A8A6&apiVer=6&city=110000"]; 34 35 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 36 37 request.timeoutInterval = 15; 38 request.HTTPMethod = @"GET"; 39 //请求头的设置 40 // request.allHTTPHeaderFields = @{ 41 // 42 // }; 43 // request setValue:<#(nullable NSString *)#> forHTTPHeaderField:<#(nonnull NSString *)#> 44 45 NSURLSession *session = [NSURLSession sharedSession]; 46 47 48 NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { 49 //网络请求完成,获取响应数据后会回调的block 50 //data表示获取的数据,response表示请求对象,error表示请求错误 51 NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response; 52 //获取状态码 53 NSLog(@"statusCode:%li", httpResponse.statusCode); 54 55 //获取响应头 56 NSDictionary *responseHeader = httpResponse.allHeaderFields; 57 NSLog(@"responseHeader:%@", responseHeader); 58 59 NSError *jsonError = nil; 60 61 NSDictionary *result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&jsonError]; 62 63 if (!jsonError) { 64 65 //显示我们的数据,如果要更新UI则需要回到主线程完成。 66 NSLog(@"%@", result); 67 68 } 69 70 71 72 }]; 73 74 //发送网络请求 75 [task resume]; 76 77 78 } 79 80 - (IBAction)postAction:(id)sender { 81 82 NSURL *url = [NSURL URLWithString:@"http://piao.163.com/m/cinema/schedule.html?app_id=1&mobileType=iPhone&ver=2.6&channel=appstore&deviceId=9E89CB6D-A62F-438C-8010-19278D46A8A6&apiVer=6&city=110000"]; 83 84 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 85 86 request.timeoutInterval = 15; 87 request.HTTPMethod = @"POST"; 88 89 NSString *bodyString = @"cinema_id=1533"; 90 NSData *bodyData = [bodyString dataUsingEncoding:NSUTF8StringEncoding]; 91 //POST请求的请求参数加在请求体中。 92 request.HTTPBody = bodyData; 93 94 NSURLSession *session = [NSURLSession sharedSession]; 95 96 97 NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { 98 99 100 NSError *jsonError = nil; 101 102 NSDictionary *result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&jsonError]; 103 104 if (!jsonError) { 105 106 //显示我们的数据,如果要更新UI则需要回到主线程完成。 107 NSLog(@"%@", result); 108 109 } 110 111 112 }]; 113 114 [task resume]; 115 116 } 117 @end
标签:
原文地址:http://www.cnblogs.com/foreveriOS/p/5433046.html