如何使用java测试代理互联网连接?

发布于 2024-09-28 06:08:57 字数 801 浏览 2 评论 0原文

我有一些代码来测试代理服务器和端口是否正常工作,其中一些代码如下所示:

System.getProperties().put("proxySet", "true");
System.getProperties().put("https.proxyHost", "localhost");
System.getProperties().put("https.proxyPort", "1234");
System.getProperties().put("http.proxyHost", "localhost");
System.getProperties().put("http.proxyPort", "1234");
HttpURLConnection conn = (HttpURLConnection) new URL("https://www.google.com").openConnection();
conn.getContent();
conn.disconnect();

似乎 openConnection() 方法会执行如下操作:

  1. 尝试连接给定的 URL使用代理。
  2. 如果无法使用代理,则会直接连接 URL,无需代理

这就是问题所在,我的意思是测试代理是否正常工作,但是如果代理无法连接,此代码将不会停止。

我还尝试使用 InetAddress 类的 isReachable() 方法,但得到了相同的结果。

那么如果代理不起作用,我该如何停止此连接,以测试代理是否可用可达?

i have some code to test if the proxy server and port is working ,some of the code like this:

System.getProperties().put("proxySet", "true");
System.getProperties().put("https.proxyHost", "localhost");
System.getProperties().put("https.proxyPort", "1234");
System.getProperties().put("http.proxyHost", "localhost");
System.getProperties().put("http.proxyPort", "1234");
HttpURLConnection conn = (HttpURLConnection) new URL("https://www.google.com").openConnection();
conn.getContent();
conn.disconnect();

it seems that openConnection() method will do thing like this:

  1. try to connect given URL using proxy.
  2. if it fails to use proxy,it will connect URL directly without proxy.

that's the problem,i meant to test if the proxy is working,but this code won't stop if the proxy can not connect.

i also tried to use isReachable() method of InetAddress class,but i get the same result.

so how could i stop this connection if the proxy doesn't work ,in order to test if the proxy is reachable ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

被翻牌 2024-10-05 06:08:57
System.getProperties().put("proxySet", "true");

那个什么也不做。这是一个都市神话。它是已失效的 1997 HotJava bean 的一部分,并从那里泄漏到各种书籍中。它从未成为任何 JDK 的一部分。在某些需要它的情况下尝试将其设置为 false 并亲自查看。

System.getProperties().put("proxySet", "true");

That one doesn't do anything. It is an urban myth. It was part of the defunct 1997 HotJava bean and leaked from there into various books. It has never been part of any JDK. Try setting it to false in some situation where you need it on and see for yourself.

长亭外,古道边 2024-10-05 06:08:57

抱歉各位,我找到了方法。
我使用 java.net.Proxy 类通过代理打开连接。
它易于使用且运行良好。请参阅 Java 网络和代理

Sorry guys, I found out the way to do it.
I used java.net.Proxy class to open a connection via proxy.
It's easy to use and works fine. See Java Networking and Proxies

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文