Swift3中URLSession介绍

前言

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

目录

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

URLSession

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


Swift3中URLSession介绍_第1张图片
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: 从远程服务器下载文件到临时文件位置。
Swift3中URLSession介绍_第2张图片
Paste_Image.png

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

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

你可能感兴趣的:(Swift3中URLSession介绍)