标签:download 网络 jpg 运行 ica ges str for 退出
NSURLSession 在ios7的时候,推出这个。主要是用来替换NSURLConnection。
NSURLSession是一组相互依赖的类,它的大部分组件和NSURLConnection中的组件相同如NSURLRequest,NSURLCache等。而NSURLSession的不同之处在于,它将NSURLConnection替换为NSURLSession和NSURLSessionConfiguration,以及3个NSURLSessionTask的子类:NSURLSessionDataTask, NSURLSessionUploadTask, 和NSURLSessionDownloadTask。
关于图例:
NSURLSession由NSURLSessionConfiguration和可选代理(optional delegate)构成。再根据你的网络需求通过NSURLSessionTask来创建session。
1、NSURLSessionConfiguration
NSURLSessionConfiguration主要用于配置NSURLSession会话属性,其工作模式主要有三种:
默认模式(defaultSessionConfiguration):使用硬盘来缓存数据,可以使用缓存的Cache,Cookie,鉴权。
及时模式(ephemeralSessionConfiguration): 临时session配置,与默认配置相比,这个配置不会将缓存、cookie等存在本地,只会存在内存里,所以当程序退出时,所有的数据都会消失
后台模式(backgroundSessionConfiguration):在后台完成上传下载,创建Configuration对象的时候需要给一个NSString的ID用于追踪完成工作的Session是哪一个。 做远程push通知或是应用程序挂起的时候就要用到这个configuration。
identifie:设置后台任务的标识符
requestCachePolicy:设置缓存策略
timeoutIntervalForRequest:设置请求超时时长
networkServiceType:设置网络服务类型
HTTPAdditionalHeaders:设置头部参数
allowsCellularAccess:设置是否在非无线的情况下请求网络(使用蜂窝数据)
HTTPMaximumConnectionsPerHost:设置主机网络连接个数
discretionary: discretionary属性为YES时表示当程序在后台运作时由系统自己选择最佳的网络连接配置,该属性可以节省通过蜂窝连接的带宽。在使用后台传输数据的时候,建议使用discretionary
属性,而不是allowsCellularAccess
属性,因为它会把WiFi和电源可用性考虑在内。这个标志允许系统为分配任务进行性能优化。这意味着只有当设备有足够电量时,设备才通过Wifi进行数据传输。如果电量低,或者只仅有一个蜂窝连接,传输任务是不会运行的。后台传输总是在discretionary模式下运行。
// 设置所有的请求只接收JSON数据;
// 设置网络请求api所需的头部参数;
[configuration setHTTPAdditionalHeaders:@{@"Accept": @"application/json", @"apikey": @"159d95a8c050074fe3ca0df0d901fc62"}];
2、NSURLSession 网络会话
标签:download 网络 jpg 运行 ica ges str for 退出
原文地址:http://www.cnblogs.com/tangbin604/p/6349788.html