为单个 URL 解析出代理,只会给出针对该 URL 的决策,并不会揭示适用于每个目标的完整自动路由策略。

当代码用外部测试地址调用 GetProxy、取出返回的 URI 并全局安装一个新的固定 WebProxy 时,这一点就很关键。原来的策略可能会把另一个主机直连,或选择不同的代理。替换操作把这一信息丢掉了。

如果确实需要依赖目标的行为,请在客户端保留受支持的策略对象。针对真正出错的 URL 检查它的决策,而不是拿一个无关的网站当作通用探针。

也要正确理解“直连”决策。当目标被绕过时,实现可能返回原始目标;应当比较绕过决策,而不是自动把该 URI 重新标记为代理。

如果固定端点就是应用想要的策略,请显式配置它并记录这一选择。一个偶然从某次自动代理结果推导出的固定路由,在下一个目标表现不同时会极难解释。

相关文章