NSURLSession是iOS7开始新推出的网络基础架构,用来代替NSURLConnection,主要有三个重要的子类:NSURLSessionDataTask、NSURLSessionUploadTask、NSURLSessionDownloadTask,分别用来获取数据、上传文件以及下载文件。
并且使用NSURLSession还可以在后台执行上传下载任务,以及NSURLSessionConfiguration的众多设置选项,对于iOS网络编程来说完全足以替代甚至超越NSURLConnection。
(1)NSURLSessionDataTask
根据URL,使用dataTask获取数据
对于POST请求,还可以构造一个NSMutableURLRequest,对请求体进行设置,调用session的“dataTaskWithRequest”方法即可。
(2)NSURLSessionDownloadTask
需要注意的是下载文件默认是存放到临时文件夹temp里的,下载完成后需要将其移动到目标位置。
执行下载任务可以直接发起请求下载:
也可以在delegate事件中进行处理:
NSURLSession实现断点下载更为容易,主要是通过“cancelByProducingResumeData”方法的回调事件拿到"resumeData",恢复下载时根据"resumeData"继续下载“
downloadTaskWithResumeData”即可。
(3)NSURLSessionUploadTask
使用NSURLSessionUploadTask来执行上传任务更为简便,不像NSURLConnection还需要在请求体设置许多参数,一个 request加上要上传的 NSData 对象或者是本地文件路径对应的 NSURL即可。
无限互联官网:www.iphonetrain.com
二维码: