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 生成的错误对象的用户信息字典中识别这些键。