Java如何設置代理ip
第一種,直接在JVM中設置:
/JVM設置代理/
System.getProperties().setProperty("http.proxyHost", ip);
System.getProperties().setProperty("http.proxyPort", "80");
這種設置的優勢 :快捷方便,且由於是JVM級別的設置,可以對整個項目起作用。當然這種設置方法有一個明顯的劣勢:當代理ip不可用時,會直接調用本地網絡來進行連接。這個問題在很多使用場景中是非常致命的。
第二種,使用SocketAddress網絡代理:
SocketAddress addr = new InetSocketAddress(host, Integer.parseInt(port));
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
try{
URL url = new URL("http://www.baidu.com");
URLConnection conn = url.openConnection(proxy);
conn.setConnectTimeout(5000);
conn.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 7.0; NT 5.1; GTB5; .NET CLR 2.0.50727; CIBA)");
conn.getContent();
}catch (Exception e) {
e.printStackTrace();
}
這種辦法的優勢是,在代理連接發生錯誤時,會拋出異常而並不是使用本地的連接繼續訪問。而劣勢也很明顯,你需要為每一次連接創建一個代理對象。