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

时间:2010-10-18 08:41:08

标签: java networking proxy

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

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. 尝试使用代理连接给定的网址。
  2. 如果无法使用代理,则会直接连接网址,无需代理
  3. 这就是问题,我的意思是测试代理是否正常工作,但如果代理无法连接,此代码将不会停止。

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

    那么如果代理不起作用我怎么能停止这个连接,以测试代理是否可以访问?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

对不起伙计们,我找到了办法。 我使用java.net.Proxy类通过代理打开连接。 它易于使用,工作正常。见Java Networking and Proxies