NSURLSession

https://objccn.io/issue-5-4/
https://www.jianshu.com/p/5ec3fa8f8cee

NSURLSession优点

  • 可以使用HTTP/2 Server Push功能,客户端上系统自带此功能,不用修改代码


    NSURLSession_第1张图片
    Snip20180419_3.png

    NSURLSession_第2张图片
    Snip20180419_5.png
  • Networking statistic 通过设置NSURLSessionTaskDelegate,在代理方法中可以拿到NSURLSessionTaskMetrics对象,从而可以获取网络相关的信息

  • 安全性

使用方法

NSURLSession_第3张图片
Snip20180419_1.png
NSURLSessionConfiguration作用
  • Transport Layer Security(TLS) version
  • Prohibit cellular usage是否允许使用蜂窝数据
  • Cookie policy
  • Cache policy
  • Storage objects
  • Request and resource timeout

注意点

  • 为了提高网络性能,使用的时候避免一个task对应一个session,应该要多个task对应一个session


    NSURLSession_第4张图片
    Snip20180419_2.png

三个具体子类

NSURLSession_第5张图片
Snip20181206_1.png

当NSURLSessionDataTask完成后,它已关联的数据,而一个NSURLSessionDownloadTask与下载文件的临时文件的路径完成。NSURLSessionUploadTask继承自NSURLSessionDataTask,因为上传的服务器响应通常具有关联数据。所有任务都可以取消,可以暂停和恢复。取消下载任务时,它可以选择创建恢复数据,然后在创建新的下载任务时可以传递该数据,以便从中断的位置进行选择。

主要API

Data task

-dataTaskWithURL:
-dataTaskWithRequest:

Upload task

-uploadTaskWithRequest:fromFile:
-uploadTaskWithRequest:fromData:
-uploadTaskWithStreamedRequest:

Download task

-downloadTaskWithURL:
-downloadTaskWithRequest:
-downloadTaskWithResumeData:

你可能感兴趣的:(NSURLSession)