我们面临的情况是,微服务需要使用代理来进行某些调用,但不是全部。此外,OkHttp 由我们依赖的库之一使用,因此我们不想添加额外的代码,我们只想使用配置更新。 因此,我们计划使用常用的系统属性
-Dhttps.proxyHost
、-Dhttps.proxyPort
和 -Dhttps.nonProxyHosts
作为 JVM 参数。
我看到很多关于 OkHpttp 中代理的实际支持的讨论,所以问题基本上是:OkHttp 是否尊重这些系统设置?
我的测试似乎朝着nonProxyHosts
不被尊重的方向发展,但我更愿意确定我得到的:
java.net.ProtocolException: unexpected end of stream
at okhttp3.internal.http1.Http1ExchangeCodec$FixedLengthSource.read(Http1ExchangeCodec.kt:371)
谢谢
OkHttp 默认使用系统 ProxySelector,并且该东西遵循这些系统属性。