2010-10-18 54 views
4

我有一些代碼來測試,如果代理服務器和端口工作正常,一些像這樣的代碼:如何使用java測試代理互聯網連接?

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()方法,但我得到了相同的結果。

因此,如果代理不工作,我如何停止此連接,以測試代理是否可訪問?

+0

通過新的java.net.Proxy(SocketAddress,Port)獲取新的代理對象。 – 2010-10-18 08:45:44

回答

1

對不起,我找到了辦法。 我用java.net.Proxy類通過代理打開連接。 它很容易使用,工作正常。請參閱Java Networking and Proxies

+2

打開連接是一回事,但只是打開連接來驗證代理是否有效? – 2012-09-25 19:15:30

1

System.getProperties()。put(「proxySet」, 「true」);

那一個什麼都不做。這是一個城市神話。