Swift3中URLSession介绍

前言

Swift3.0把之前带NS前缀的类都改成Swift风格了,像常用的NSURLSession变成URLSession

目录

处理网络请求的几个关键类

URLSession

URLSession是用来处理基于HTTP/HTTPS请求的类


Paste_Image.png

URLSession是一个可以响应发送或者接受HTTP请求的关键类,可以通过URLSessionConfiguration类新建URLSession实例。有以下三种方式:

  • URLSessionConfiguration.default
    默认configuration实例创建方式,使用硬盘上持久化全局缓存、证书(credential)和cookie的存储对象

  • URLSessionConfiguration.ephemeral
    唯一跟默认configuration不一样的是所以与会话(session)相关的数据都存储在内存中

  • URLSessionConfiguration.background(withIdentifier: "ConfigurationID")
    让会话在后台执行上载或下载任务。即使应用程序本身被暂停或终止,传输仍将继续

URLSessionConfiguration

URLSessionConfiguration可以配置会话(session)属性像timeout、HTTP header、缓存策略。

URLSessionTask

URLSessionTask是一个表示任务对象的抽象类,一个会话创建一个任务,这里任务是指获取数据、下载或上传文件。
有三种类型的会话

  • URLSessionDataTask: 处理从HTTP get请求中从服务器获取数据到内存中。
  • URLSessionUploadTask:上传硬盘中的文件到服务器,一般是HTTP POST 或 PUT方式
  • URLSessionDownloadTask: 从远程服务器下载文件到临时文件位置。
Paste_Image.png

还可以暂停、恢复和取消任务(tasks),此外URLSessionDownloadTask还支持在未来某一时刻恢复暂停的下载。

通常URLSession有两种返回数据的方式:1.无论执行任务成功还是失败都会通过completion handler block来处理。2.通过在会话创建时设置的委托调用方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容