使用 URLSession 的 macOS 应用通常可以遵循本机的代理策略,而不必再让用户重新输入同一个代理。Apple 的文档说明,connectionProxyDictionary 的默认值会使用系统设置。

下载管理器完全可以提供自己的代理偏好。请把选择讲清楚:“使用系统设置”和有意配置的会话是两种不同的模式。复制一个当前的代理地址,等于给这条路由拍了一张快照。

在创建会话之前应用自定义策略。URLSession 会复制传入的配置;之后再修改原来的配置对象不会更新已存在的会话。当用户更改应用的代理偏好时,请为新的策略安排一个新会话,并决定已经在进行中的请求应当如何完成或被取消。

对于受支持的部署目标,Apple 现在推荐使用 proxyConfigurations 而不是更旧的字典接口,因为它支持安全的代理与中继类型。在选择该接口之前,请对照应用的最低操作系统版本检查 API 的可用性。

这一行为属于 URLSession。自行打开套接字或使用其他 HTTP 实现的软件包需要有自己的代理支持。在更改系统偏好之前,先确认它用的是哪种传输方式。

相关文章