1.GET请求
(1)
//1 构造URL网络地址
NSURL *url = [NSURL URLWithString:@"http://www.weather.com.cn/data/sk/101010300.html"];
//2 构造网络请求对象 NSURLRequest
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
//设置请求方式 GET
request.HTTPMethod = @"GET";
//设置请求的超时时间
request.timeoutInterval = 60;
//请求头
//[request setValue:<#(nullable NSString *)#> forHTTPHeaderField:<#(nonnull NSString *)#>];
//请求体
//request.HTTPBody
//3 通过配置对象构造网络会话 NSURLSession
//使用系统默认的会话对象
NSURLSession *session = [NSURLSession sharedSession];
//4 创建网络任务 NSURLSessionTask
//通过网络会话 来创建数据任务
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSLog(@"网络请求完成");
//获取响应头
//将响应对象 转化为NSHTTPURLResponse对象
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
//获取网络连接的状态码
// 200 成功 404 网页未找到
NSLog(@"状态码:%li", httpResponse.statusCode);
if (httpResponse.statusCode == 200) {
NSLog(@"请求成功");
}
//响应头
NSLog(@"响应头:%@", httpResponse.allHeaderFields);
//获取响应体
//对响应体进行JSON解析
if (data) {
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil][@"weatherinfo"];
// NSLog(@"响应体数据:%@", dic);
NSArray *array = dic.allKeys;
for (NSString *key in array) {
NSLog(@"%@:%@", key, dic[key]);
}
}
}];
//5 发起网络任务
[dataTask resume];
(2)使用configuration配置属性,并用NSURLSessionDataDelegate代理监听数据接收
构建任务:
//构建URL
NSURL *url = [NSURL URLWithString:@"http://218.76.27.57:8080/chinaschool_rs02/135275/153903/160861/160867/1370744550357.mp3"];
//构建configuration
/*
defaultSessionConfiguration; 默认会话类型,能够进行磁盘缓存
ephemeralSessionConfiguration; 临时会话类型,不进行任何的磁盘缓存
backgroundSessionConfigurationWithIdentifier:(NSString *)identifier 后台类型,用于后台下载上传
*/
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
//设置配置文件
//设置缓存策略
//config.requestCachePolicy = NSURLRequestUseProtocolCachePolicy;
//设置网络服务类型 决定了网络请求的形式
config.networkServiceType = NSURLNetworkServiceTypeDefault;
//设置请求超时时间
config