【发布时间】:2015-01-26 10:36:28
【问题描述】:
我有一个自定义的NSURLProtocol class 在this tutorial 的帮助下实现。除了名称、数据模型等之外,我的实现与教程中的几乎相同......
本质上,我正在尝试发送HTTP 请求,但不是URL 以“http://”开头,而是需要以“bla://”开头
现在,我正在尝试注册protocol class 并通过AFNetworking framework 使用它,但遇到了一些麻烦。
canInitWithRequest: 方法在某个时候开始返回 NO,此时请求失败,我不断收到“不支持的 URL”错误。
除了注册protocolclass之外,我还尝试通过在didFinishLaunchingWithOptions方法中调用来将类添加到AFHTTPSessionManager的protocolClasses:
[NSURLProtocol registerClass:[MyURLProtocol class]];
NSMutableArray *protocolsArray = [NSMutableArray arrayWithArray:[AFHTTPSessionManager manager].session.configuration.protocolClasses];
[protocolsArray addObject:[MyURLProtocol class]];
[AFHTTPSessionManager manager].session.configuration.protocolClasses = [protocolsArray copy];
我还在应用程序的 info.plist 中的 URL Schemes 字段中添加了 url 方案
仍然没有运气... 我想要做的甚至可能吗?如果是这样,我会错过什么? 谢谢
【问题讨论】:
-
NSURLProtocol 类中的方法是否被调用?
-
是的,协议方法似乎工作正常。此外,当我在请求 url 的开头加上“http://”时,服务器会响应(当然响应错误,因为它是错误的协议)。所以请求肯定会被发送。
-
我刚刚测试了 ryanwa 的建议,它确实有效。
标签: ios objective-c http afnetworking nsurlprotocol