URL Loading System[译]

Interact with URLs and communicate with servers using standard Internet protocols.

与URL交互并使用标准Internet协议与服务器通信。

官方文档:苹果文档

综述

URL Loading System 使用标准协议(例如 https 或者我们创建的自定义协议)提供对 URL 标识的资源的访问。加载是异步执行的,因此你的应用可以保持响应能力,并在数据或错误到达时处理它们。使用 URLSession 实例创建一个或多个 URLSessionTask 实例,这些 URLSessionTask 实例可以获取数据、下载文件或将数据和文件上传到服务器。要配置会话,请使用 URLSessionConfiguration 对象,该对象控制行为,例如如何使用缓存和 cookie,或者是否允许在蜂窝网络上进行连接。

我们可以重复使用一个会话来创建任务。例如,网络浏览器可能有分开的会话供常规浏览和私人浏览使用,而私人会话不会缓存其数据。图1显示了具有这些配置的两个会话如何创建多个任务。

每个会话都与一个 delegate 相关联,以接收定期更新(或错误)。delegate 默认会调用我们提供的完成处理程序块,如果选择提供自己的自定义 delegate,则不会调用此块。还可以将会话配置为在后台运行,以便在应用程序挂起时,系统可以代表它下载数据并唤醒应用以交付结果。

话题

基本

配置并创建会话,然后使用它们创建URL任务。

  • Fetching Website Data into Memory:通过从URL会话创建数据任务,将数据直接接收到内存中。
  • Analyzing HTTP Traffic with Instruments:测量基于 HTTP 的网络性能和应用程序的使用情况。
  • NSURLSession:协调一组相关的网络数据传输任务的对象。
  • NSURLSessionTask:在URL会话中执行一项任务,例如下载特定资源。

请求与响应

  • NSURLRequest:与协议或 URL 方案无关的 URL 加载请求。
  • NSURLResponse:与协议或 URL 方案无关的,对 URL 加载请求的响应相关联的元数据。
  • NSHTTPURLResponse:与 HTTP 协议 URL 加载请求的响应关联的元数据。

上传

  • Uploading Data to a Website:将数据从你的应用发送到服务器。
  • Uploading Streams of Data:将数据流发送到服务器。

下载

  • Downloading Files from Websites:直接下载文件到文件系统。
  • Pausing and Resuming Downloads:允许用户继续下载而无需重新开始。
  • Downloading Files in the Background:创建在应用不活动时下载文件的任务。

缓存行为

  • Accessing Cached Data:控制 URL 请求如何利用以前缓存的数据。
  • CachedURLResponse:对 URL 请求的缓存响应。
  • URLCache:将 URL 请求映射到缓存响应对象的对象。

身份验证和凭证

  • Handling an Authentication Challenge:当服务器要求对 URL 请求进行身份验证时,做出适当的响应。
  • NSURLAuthenticationChallenge:来自服务器的挑战,要求来自客户端的身份验证。
  • NSURLCredential:认证凭证,由特定于凭证类型和要使用的持久性存储类型(如果有)的信息组成。
  • NSURLCredentialStorage:共享凭据缓存的管理器。
  • NSURLProtectionSpace:服务器或服务器上需要认证的区域,通常描述为领域。

Cookies

  • NSHTTPCookie:HTTP cookie 的表示形式。
  • NSHTTPCookieStorage:一个管理 cookie 存储的容器。

错误

  • URLError:URL 加载 API 返回的错误代码。
  • URL Loading System Error Info Keys:从 URL 加载 API 生成的错误对象的用户信息字典中识别这些键。

系列:

URL Loading System[译]

NSURLRequest

NSURLResponse