美文网首页
iOS 网络开发

iOS 网络开发

作者: 孙健会员 | 来源:发表于2017-07-06 14:08 被阅读37次

目录

1.NSURLSession

2.身份验证和自定义TLS

3.App Transport Security

4.NSURLSession 工作流

5.后台传输及其用法

6.NSURLSession API

7.其他一些注意点

1.NSURLSession

NSURLSession相关类

  • NSURLSession
  • NSURLSessionConfiguration
  • NSURLSessionDelegate
  • NSURLSessionTask
  • NSURLSessionTaskMetrics
  • NSURLSessionTaskTransactionMetrics
URLSession.png

NSURLSession分为

  • 全局共享单例session:NSURLSession sharedSession, 有一定的局限性
  • 自定义session: 自定义配置文件,设置代理,大部分时间我们都用这个
  • 后台session:也是自定义session的一种, 只是它用于专门做后台上传和下载任务

NSURLSessionConfiguration:

配置可分为

  • defaultSessionConfiguration: 系统默认
  • ephemeralSessionConfiguration�: 仅内存缓存,不做磁盘缓存的配置
  • backgroundSessionConfiguration: 这里需要指定一个identifier,identifier用来后台重连对象。(做后台上传和下载就是使用这个config)
    另外,我们还可以给configuration对象自定义一些属性,例如每端口的最大并发http请求数目,以及是否允许蜂窝网络,请求缓存策略,请求超时,cookies/证书存储等策略

NSURLSessionDelegate

delegate.png

session管理的一组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

相关文章

网友评论

      本文标题:iOS 网络开发

      本文链接:https://www.haomeiwen.com/subject/mvshhxtx.html