NSURLSessionConfiguration API详解

一、NSURLSessionConfiguration的描述

NSURLSessionConfiguration为NSURLSession配置一些请求所需要的策略。如:超时、缓存策略、链接需求的。

NSURLSession会 拷贝configuration。所以session一旦初始化结束就不会再更改configuration。除非初始化一个session。

重要:如果NSURLRequest中也做了一些指定。session也会遵循NSURLRequest的限定,但是如果configuration有更加严格的限定,仍以configuration 为主


二、 defaultSessionConfiguration  
默认配置使用的是持久化的硬盘缓存,存储证书到用户钥匙链。存储cookie到shareCookie。

标注:如果想要移植原来基于NSURLConnect的代码到NSURLSession,可使用该默认配置,然后再根据需要定制该默认配置。


三、 ephemeralSessionConfiguration  
返回一个不适用永久持存cookie、证书、缓存的配置,最佳优化数据传输。
标注:当程序作废session时,所有的ephemeral session 数据会立即清除。此外,如果你的程序处于暂停状态,内存数据可能不会立即清除,但是会在程序终止或者收到内存警告或者内存压力时立即清除

四、 backgroundSessionConfigurationWithIdentifier  
生成一个可以上传下载HTTP和HTTPS的后台任务(程序在后台运行)。
在后台时,将网络传输交给系统的单独的一个进程。

重要:identifier 是configuration的唯一标示,不能为空或nil.

工作状态:
如果程序是被系统正常终止的和重新启动,可以使用同一个 identifier创建configuration和session,并且能恢复终止时的传输状态。
如果程序是被用户在手动退出的,session会取消所有的后台任务,届时不能再唤醒application,如果想要再次开始传输,必须用户手动开启application。

属性介绍:

@property(readonly, copy) NSString *identifier    

如果在后台任务正在传输时程序退出,可以使用这个identifier在程序重新启动是创建一个新的configuration和session关联之前传输。

@property(copy) NSDictionary *HTTPAdditionalHeaders

默认为空,NSURLRequest附件的请求头。这个属性会给所有使用该configuration的session生成的tasks中的NSURLRequest添加额外的请求头。

重要:不要修改一下请求头
  • Authorization

  • Connection

  • Host

  • WWW-Authenticate

如果这里边添加的请求头跟NSURLRequest中重复了,侧优先使用NSURLRequest中的头。

@property NSURLRequestNetworkServiceType networkServiceType

指定网络传输类型。精切指出传输类型,可以让系统快速响应,提高传输质量,延长电池寿命等。
enum
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值