在ios9中,NSURLConection的sendSync..和sendAsync已经过时。被NSURLSession代替。
NSURLSession是十分强大的。
普通网络请求post:
NSURL *url=[NSURLURLWithString:@"http://apis.haoservice.com/weather"];
NSMutableURLRequest *request=[NSMutableURLRequestrequestWithURL:url];
request.HTTPMethod=@"POST";
NSString *data=[NSStringstringWithFormat:@"cityname=%@&key=%@",@"烟台",@"f2b98cebe0514424a1edb4b99c1db95c"];
request.HTTPBody=[datadataUsingEncoding:NSUTF8StringEncoding];
NSURLSession *session=[NSURLSessionsharedSession];
NSURLSessionDataTask *task=[sessiondataTaskWithRequest:request completionHandler:^(NSData*_Nullable data, NSURLResponse *_Nullable response, NSError *_Nullable error) {
};
[task resume];//这句话一定得要,开始任务的意思。
下载网络请求:
NSURLSessionDownloadTask *task=[sessiondownloadTaskWithRequest:requestcompletionHandler:^(NSURL *_Nullable location, NSURLResponse *_Nullable response, NSError *_Nullableerror) {
}];
[task resume]上传文件请求:太复杂,也有这个方法,去头文件找。
注意:如果想获得下载进度或者断点下载,应该不用block方法,应该设置代理,实现协议方法。
上述两个方法也有直接写入URL的方法,具体头文件里面找。