java - VPN 开启时无法访问 REST 端点

标签 java ssl networking vpn okhttp

我对网络有非常基本的了解。请ELI5

我有一些 HitTest REST 端点 (GET) 的 Java 代码。 https://postman-echo.com/get?foo1=bar1&foo2=bar2
在我的本地环境中运行我的代码并且我关闭了我的公司 VPN 时,我能够无错误地访问该端点。

当我打开我的公司 VPN 时,我开始收到奇怪的错误,特别是 javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
连接到 VPN 时,什么可能导致我的 java 代码中断?

更奇怪的是,当我在打开 VPN 的情况下在浏览器中输入端点时,我可以点击端点,因为一切正常。

OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
                  .url("https://postman-echo.com/get?foo1=bar1&foo2=bar2")
                  .build();

try (Response response = client.newCall(request).execute()) {
    return response.body().string();
}

编辑

我可以访问两个代理,一个在我的浏览器中使用产生 400 错误,另一个在我的代码中工作。为什么在使用 VPN 时需要代理,我的 2 个代理之间会有什么不同,为什么一个会在我的代码中生成 400 而另一个不会?

最佳答案

我坚信您需要通过代理调用电话,因为这发生在公司网络中。由于浏览器使用 VPN 设置进行 HTTP/HTTPS 调用,因此浏览器中不会出现此问题。在代码中添加代理设置可以解决问题。

关于java - VPN 开启时无法访问 REST 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61551840/

相关文章:

asp.net-mvc - 将 SSL 用于 MVC 4 应用程序

apache - 在 Apache 中从 HTTP 重定向到 HTTP

java - java中的 keystore 密码加密

python - 通过 Socket 服务器发送整数时出现问题

java - 我如何在java中创建一个带有接受扩展接口(interface)类型参数的函数的接口(interface)?

java - 为什么水平滚动条不适用于我的 JTextArea?

java - 设置按钮和 Action 监听器的大小

linux - 如何在我的家庭网络上访问 git 存储库?

即使 ufw 处于非事件状态并且 bind-address 和 skip-networking 已评论,MySQL 端口 3306 也会关闭

java - jnetpcap保存rtp负载: both channels