禁用 NSURLSession 代理

The*_*eff 2 ios nsurlsession

我发现当我的 iOS 设备自动配置代理时,我的所有 NSURLSession 都使用它进行下载/上传/请求。当我尝试从同一本地网络上的其他设备发出这些请求时,这会成为一个问题。我需要禁用设备自动检测 NSURLSession 的代理。

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

任何帮助,将不胜感激!

dga*_*ood 5

如果您在创建会话配置时提供了一个空的代理字典,则 NSURLSession 应忽略使用该会话配置创建的所有会话中系统提供的代理。

如果您尝试为未创建会话的某些内容(例如第三方框架、Web 视图等)覆盖它,通常可以通过创建并注册(全局)接受请求的 NSURLProtocol 来解决该问题并在您自己的会话中重新发出它们(添加一些自定义标头,以便您不会在无限循环中不断重新发出相同的请求)。Apple 网站上有一些编写自定义协议的基本示例。