我从okhttp 2.7.5迁移到3.10.0,当我在我的代理无效/可访问且设置了系统属性-Dhttp.proxyHost
和-Dhttp.proxyPort
的VPN上时,客户端请求因连接超时而失败。在2.7.5中,即使设置了这些系统属性,如果我在这些值无效的网络上,它仍然有效。我的猜测是,如果无法访问代理,客户端将在没有代理的情况下尝试请求。
这是预期的吗?
答案 0 :(得分:1)
在OkHttp 3.5中,此行为已更改。来自changelog:
- 如果系统的HTTP代理失败,OkHttp将不再尝试直接连接。这种行为令人惊讶,因为OkHttp忽略了用户指定的配置。如果需要自定义代理回退行为,请实现自己的java.net.ProxySelector。