我有一些代码来测试代理服务器和端口是否正常工作,其中一些代码如下:
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()方法会做这样的事情:
这就是问题,我的意思是测试代理是否正常工作,但如果代理无法连接,此代码将不会停止。
我也尝试使用InetAddress类的isReachable()方法,但我得到的结果相同。
那么如果代理不起作用我怎么能停止这个连接,以测试代理是否可以访问?
答案 0 :(得分:3)
System.getProperties().put("proxySet", "true");
那个人什么都不做。这是一个都市神话。它是已经废弃的1997 HotJava bean的一部分,并从那里泄漏成各种书籍。它从未成为任何JDK的一部分。在某些您需要的情况下尝试将其设置为false
并自行查看。
答案 1 :(得分:1)
对不起伙计们,我找到了办法。
我使用java.net.Proxy
类通过代理打开连接。
它易于使用,工作正常。见Java Networking and Proxies