您的位置:首页 > 移动开发 > IOS开发

关于iOS中的NSURLSession

2016-01-28 15:14 495 查看
网络编程一定在开发中重中之重了,上传和下载更是必不可少的环节,iOS7中将NSURLConnection进行了加强成为了现在的NSURLSession,可以更好的通过设置来完成我们的任务。同时增加了后台传输功能,断点续接等。总之,苹果是越来越贴心了。

其实用过NSURLConnection的,应该很快就会掌握这个类的用法的,大家只要是弄清楚配置和任务这两个类就会很快的很好的应用这个类的,很简单,

配置:NSURLConfiguration

任务 : NSURLSessionTask - NSURLSessionDataTask, NSURLSessionDownLoadTask, NSURLSessionUpLoadTask.

具体的就不说了,如果大家想真正的弄明白的话,可以参考一些具体的开发基础的书籍,推荐一本-《iOS核心开发手册》

获取数据

NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod = @"GET";

// 创建会话
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
if (error == nil) {
NSLog(@"数据请求成功");
}
else {
NSLog(@"数据请求失败");
}
}];
// 开始执行任务
[dataTask resume];


上传

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
// 创建包体data
NSData *bodyData = [par dataUsingEncoding:NSUTF8StringEncoding];
NSURLSessionConfiguration * configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];
NSURLSessionUploadTask *upTask = [session uploadTaskWithRequest:request fromData:bodyData completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
if (error == nil) {
NSLog(@"上传成功");
}
else {
NSLog(@"上传失败");
}
}];
// 开始上传
[upTask resume];


其实用其俩比NSURLConnection的简单。其实AFNetWorking已经对NSURLSession进行了封装了。大家也可以研究一下AFN中方法,我的上一篇的图片上传就是用的AFN,如果自己写图片上传的话很麻烦的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: