NSURLProtocol
class
在本教程的帮助下,我已经实现了一个自定义。除了名称,数据模型等外,我的实现与本教程中的实现几乎相同。
本质上,我试图发送一个HTTP
请求,但是它不是URL
以“ http://”开头,而是以“ bla://”开头。
现在,我试图注册protocol
class
并通过来使用它AFNetworking
framework
,但遇到了一些麻烦。
该canInitWithRequest:
方法在某个时候开始返回NO,并且此时请求失败,并且我不断收到“不支持的URL”错误。
除了注册protocol
class
,我试图将该类添加到AFHTTPSessionManager
的protocolClasses
在调用此didFinishLaunchingWithOptions
方法:
[NSURLProtocol registerClass:[MyURLProtocol class]];
NSMutableArray *protocolsArray = [NSMutableArray arrayWithArray:[AFHTTPSessionManager manager].session.configuration.protocolClasses];
[protocolsArray addObject:[MyURLProtocol class]];
[AFHTTPSessionManager manager].session.configuration.protocolClasses = [protocolsArray copy];
而且我还将url方案添加到了应用程序info.plist中的URL方案字段中
还是没有运气...我正在尝试做的可能吗?如果是这样,我可能会错过什么?谢谢
因此,对于其他寻找有关此信息的人:
除了AFURLSessionManager
不使用标准NSURLProtocol
注册的事实外,它还会处理数组First-In-First-Out,而不是Last.In-First-Out NSURLProtocol
。
意思是,如果您想覆盖的行为AFURLSessionManager
(例如出于测试目的),则不能仅将NSURLProtocol
子类添加到session.configuration.protocolClasses
,而必须将其添加到数组的开头(或至少添加到您的行为的前面)重新覆盖/修改)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句