NSURLProtocol官方文档阅读

2017-06-15  本文已影响423人  AppleTTT

NSURLProtocol

Overview

NSURLProtocol对象处理特定协议的URL数据加载。 NSURLProtocol类本身是一个抽象类,它提供用于处理具有特定scheme的URL的基础结构。 你可以通过创建NSURLProtocol的子类为应用支持的任何自定义协议或URL schemes。

应用不需要直接实例化一个NSURLProtocol子类。 当下载开始时,系统创建适当的协议对象来处理相应的URL请求。 所有你需要做的是定义您的协议类,并在应用程序启动时调用registerClass:类方法,以便系统知道你的协议。

注意:不能在watchOS 2或更高版本中使用此类自定义URL schemes和协议。

为了支持协议特定请求的定制,Apple鼓励我们为NSURLRequest和NSMutableURLRequest添加类别来满足我们的需求。 以这种方式扩展NSURLRequest和NSMutableURLRequest功能可以在调用NSURLProtocol的类方法propertyForKey:inRequest:setProperty:forKey:inRequest :来存储和检索特定于协议的数据请求.

协议实现者的重要职责是为其成功处理的每个请求创建一个NSURLResponse。 协议实现者可能希望创建一个定制的,可变的NSURLResponse类来提供特定于协议的信息。

Symbols

Creating Protocol Objects

Registering and Unregistering Protocol Classes


Determining If a Subclass Can Handle a Request
返回NSURLProtocol的子类是否可以处理指定的请求。
子类应检查请求,并确定此方法是否可以执行该请求的加载。

这是一个抽象的方法,子类必须实现此方法。
Getting and Setting Request Properties



Providing a Canonical Version of a Request

Determining If Requests Are Cache Equivalent

Starting and Stopping Downloads


Getting Protocol Attributes



Initializers

NSURLProtocolClient

上文中出现了这个协议,我们接下来看下这个协议到底定义了一些什么方法吧,虽然我们并不需要去是实现这些功能。

NSURLProtocolClient协议提供NSURLProtocol子类与URL加载系统进行通信的接口。 应用程序永远不需要实现此协议。









参考

iOS开发之--- NSURLProtocol
iOS监控-DNS劫持
让 WKWebView 支持 NSURLProtocol
iOS 开发中使用 NSURLProtocol 拦截 HTTP 请求
iOS中UIWebView与WKWebView、JavaScript与OC交互、Cookie管理看我就够(中)

上一篇 下一篇

猜你喜欢

热点阅读