为 NSURLSession 禁用代理

Disable proxy for NSURLSession

我发现当我的 iOS 设备自动配置代理时,我的所有 NSURLSession 都在为 downloads/uploads/requests 使用它。当我试图从同一本地网络上的其他设备发出这些请求时,这就成了一个问题。我需要禁用设备为 NSURLSession 自动检测的代理。

每个 post 到处都指示如何设置代理字典,但是,我找不到任何地方如何确保 NRURLSession 不使用代理。

如有任何帮助,我们将不胜感激!

如果在创建 session 配置时提供 代理字典,NSURLSession 应该忽略所有 session 中的 system-provided 代理使用该 session 配置创建。

如果您试图在您未创建 session 的地方覆盖它(例如 third-party 框架、网络视图等),您可以 通常 通过创建和注册(全局)一个 NSURLProtocol 来解决这个问题,它接受请求并在你自己的 session 中重新发出它们(添加一些自定义 header 这样你就不会继续重新发出无限循环中的相同请求)。 Apple 的网站上有一些编写自定义协议的基本示例。