首页 > 技术文章 > ios学习笔记——NSURLSession

sjzlovecj 2016-03-18 16:32 原文

Session中任务的行为取决于三件事:session的类型、任务的类型、当任务创建的时候app是否在前台运行。

Sessions的类型

我们通过配置NSURLSessionConfiguration的对象类配置NSURLSession。session类型有三种:

1、一般模式:类似于其他下载网址的基础方法,可以使用缓存的Cache、Cookie、鉴权。

2、及时模式:不使用Cache、Cookie、鉴权。

3、后台模式:在后台完成上传下载,创建Configuration对象的时候需要给一个NSString的ID用于追中完成工作的Session是哪一个。

 

任务的类型:

1、NSURLSessionDataTask:使用NSData对象发送接受数据,因为数据任务不将数据存储到文件中,所以不支持session的后台模式。

2、NSURLSessionDownloadTask:以文件的形式接收数据,并在app没有运行的时支持后台下载。

3、NSURLSessionUploadTask:通常以文件的形式发送(上传)数据,并在app没有运行的时候支持后台上床。

 

后台传输的注意事项:

当你的app被暂停的时候,NSURLSession类支持后台传输。后台转移仅供使用后台模式配置的session对象使用。

由于实际传输是一个单独的过程并且由于重新启动app的过程的代价比较昂贵,所以一些功能是不可用的:

1、该session必须实现一个事件传递的代理(用于上传和下载,代理作为相同的中间传输方法)

2、仅HTTP和HTTPS协议的支持(没有自定义协议)

3、只支持上传和下载任务(没有数据任务)

4、重定向

5、当应用程序在后台启动的时候,配置对象的公开属性是被认为真实的。

 

推荐阅读