代理请求与 Apple 的可用性预检
让预期的代理请求自己给出结果,而不是因为一次独立的可用性检查采用了不同的网络假设就将其拒绝。
可用性预检可能在应用尝试其代理路由之前就拒绝一次下载。直接评估目标与经由一个连接到该目标的中介方去访问,是两种不同的问题。
Apple 不建议使用 SCNetworkReachability 预检,并建议直接尝试建立连接。检查与操作之间条件可能发生变化,而正向标志从来不能确证代理认证、TLS 校验或目标是否接受。
报告操作的结果
让 HTTP 客户端的结果来区分连接失败、代理质询和应用响应。恰当的 URLSession 连接等待配置可以把操作推迟到出现合适路径为止;它并不提供凭据。
针对用户发起的请求显示等待或失败状态。网络路径观测仍是有用的诊断信息,但不应基于一次采用其他路由假设的早先查询而变成永久的离线否决。