【问题标题】:NSURLProtocol chain?NSURLProtocol 链?
【发布时间】:2017-06-28 18:08:28
【问题描述】:

我们可以使用这样的链条吗?

例如,我知道像 abc://wwww.example.com 这样的 URL 将由 NSURLProtocol 的子类处理。但它来自第三方库,我没有修改响应的源代码。所以我提供了另一个 NSURLProtocol 的子类来处理像 xyz://www.example.com 这样的 url。我能够拦截并将网址从 abc 更改为 xyz。在我自己的 startLoading() 中,我将 url 从 xyz 改回 abc 并使用 NSURLSession 向 abc://www.example.com 发送请求,但出现错误,看起来请求没有通过第三方 NSURPProtocol 子类。

有什么建议吗?

【问题讨论】:

    标签: nsurlprotocol


    【解决方案1】:

    NSURLProtocol 子类只为NSURLConnection 全局注册。对于NSURLSession,注册是按会话进行的。

    如果您想注册 NSURLProtocol 以影响第三方库,我知道的唯一方法是在 NSURLSession 上调整所有会话创建方法并将它们包装将您的自定义协议注入到配置中的代码。

    【讨论】:

    • 这非常有用 - 永远不知道有这样的区别。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多