美文网首页iOS Developer程序员
Swift3中URLSession介绍

Swift3中URLSession介绍

作者: 绍清_shao | 来源:发表于2017-03-15 11:59 被阅读365次

    前言

    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.通过在会话创建时设置的委托调用方法

    相关文章

      网友评论

        本文标题:Swift3中URLSession介绍

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