java.net.UnknownHostException:谷歌API

java.net.UnknownHostException: googleapis

我的 Spring 启动应用程序能够调用 Google pub sub API 并按预期完美运行,但仅当它不在代理后面时。

我希望将我的应用程序部署到需要代理才能进行出站 HTTP 调用的本地数据中心。

  1. 我在我的环境中使用了 HTTPS_PROXY.. 它不起作用
  2. 我在我的环境中使用了 grpc_proxy.. 它不起作用

获取此异常

Caused by: java.net.UnknownHostException: pubsub.googleapis.com
    at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:797)
    at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1505)
    at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1364)
    at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1298)
    at io.grpc.internal.DnsNameResolver$JdkAddressResolver.resolveAddress(DnsNameResolver.java:631)
    at io.grpc.internal.DnsNameResolver.resolveAddresses(DnsNameResolver.java:219)

有没有其他方法可以为 google 库注入代理?

grpc-java 和许多 Java HTTP 库使用 Java-standard -Dhttps.proxyHost=HOST/-Dhttps.proxyPort=PORT 配置代理服务器。

您不能使用环境变量配置它们。通常只在命令行上传递 -Ds。如果您想全局配置它,您可以在 JRE 中更改 lib/net.properties

找到了解决方案。如前所述 here,我们将不得不使用 GRPC_PROXY_EXP.

我是这样设置的GRPC_PROXY_EXP=internet.company.com:93而且效果很好