UI(三十)发送请求NSURLSession
发送请求 NSURLSession网络请求会话
1、NSURLSessionDataTask 数据类任务
NSURLSessionUploadTask 上传类任务
2、NSURLSessionDownloadTask 下载类任务
发送请求的流程:
1、准备请求(NSURLRequest)
eg:王文强借东西的那句话
2、创建一个网络请求会话(NSURLSession)
eg:王文强的嘴
3、创建请求任务(NSURLSession-DataTask)
eg:组织借东西的语言
4、通过会话开启任务(resume)
eg:万文强张嘴借东西
//1、创建一个请求 (NSURLRequest)
//(1)URL
//(2)创建一个请求对象(1、需要添加内容到请求对象的时候NSMutableURLRequest 2、不需要添加内容到请求对象的时候 NSURLRequest)
NSURL *url = [NSURL URLWithString:@"http://apis.baidu.com/heweather/weather/free?city=zhengzhou"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
//get、post 都是发送一个内容(参数)到服务器端
//get:把要送的内容拼接到URL字符串后面 常用?隔开 (1、把要发送的内容暴露在URL的字符串中,不可以发送密码隐私 2、URL的字符串长度是有限制的(1kb)发送内容过大不能使用)
//设置请求方式
[requset setHTTPMethod:@"get"];
//apikey 请求头
[request addValue:@"800df6eb77392d2205b55cfccbcc1662"forHTTPHeaderField:@"apikey"];
//2、创建NSURLSession会话
NSURLSession *session = [NSURLSession sharedSession];
//3、创建一个请求的任务NSURLSessionDataTask
// NSURLSessionDataTask *task = [session dataTaskWithRequest:request];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
//data 服务器返回给咱们需要的内容
//JOSN解析
NSDictionary *result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSLog(@"==%@",response);
NSLog(@"%@",result);
}];
//4、开启任务
[task resume];