目录
1.NSURLSession
2.身份验证和自定义TLS
3.App Transport Security
4.NSURLSession 工作流
5.后台传输及其用法
6.NSURLSession API
7.其他一些注意点
1.NSURLSession
NSURLSession相关类
- NSURLSession
- NSURLSessionConfiguration
- NSURLSessionDelegate
- NSURLSessionTask
- NSURLSessionTaskMetrics
- NSURLSessionTaskTransactionMetrics
NSURLSession分为
- 全局共享单例session:NSURLSession sharedSession, 有一定的局限性
- 自定义session: 自定义配置文件,设置代理,大部分时间我们都用这个
- 后台session:也是自定义session的一种, 只是它用于专门做后台上传和下载任务
NSURLSessionConfiguration:
配置可分为
- defaultSessionConfiguration: 系统默认
- ephemeralSessionConfiguration�: 仅内存缓存,不做磁盘缓存的配置
- backgroundSessionConfiguration: 这里需要指定一个identifier,identifier用来后台重连对象。(做后台上传和下载就是使用这个config)
另外,我们还可以给configuration对象自定义一些属性,例如每端口的最大并发http请求数目,以及是否允许蜂窝网络,请求缓存策略,请求超时,cookies/证书存储等策略
NSURLSessionDelegate
delegate.pngsession管理的一组tasks共享一个代理,不想实现代理方法时,代理传nil即可
代理协议分为:
- NSURLSessionDelegate:session: session-level的代理
- NSURLSessionTaskDelegate:task-level面向all的代理
- NSURLSessionDataDelegate:task-level 面向data和upload的代理方法
- NSURLSessionDownloadDelegate:task-level面向download的代理
- NSURLSessionStreamDelegate:task-level面向stream的代理方法
DownloadTask:
1.URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes
2.URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedWrite
3.URLSession:downloadTask:didFinishDownloadToURL:把临时文件的URL路径给你
UploadTask:
URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend
StreamTask:
URLSession:task:needNewBodyStream:
task completion
URLSession:task:didcomplete:withError
NSURLRequest:
1.RequestMethod:
2.RequestBody
NSURLResponse:
1.statusCode
2.headerFileds
等
网友评论