Java查找代理服务器设置
如何找到系统的代理设置?
解决方法
下面的例子展示了如何使用HttpURLConnection类的systemSetting&GetResponse方法查找代理服务器设置和创建,把系统上的代理连接。
import java.net.HttpURLConnection; import java.net.URL; import java.util.Properties; import java.net.InetSocketAddress; import java.net.Proxy; import java.net.ProxySelector; import java.net.URI; public class Main{ public static void main(String s[]) throws Exception{ try { Properties systemSettings = System.getProperties(); systemSettings.put("proxySet", "true"); systemSettings.put("http.proxyHost", "proxy.mycompany1.local"); systemSettings.put("http.proxyPort", "80"); URL u = new URL("http://www.google.com"); HttpURLConnection con = (HttpURLConnection) u.openConnection(); System.out.println(con.getResponseCode() + " : " + con.getResponseMessage()); System.out.println(con.getResponseCode() == HttpURLConnection.HTTP_OK); } catch (Exception e) { e.printStackTrace(); System.out.println(false); } System.setProperty("java.net.useSystemProxies", "true"); Proxy proxy = (Proxy) ProxySelector.getDefault(). select(new URI("http://www.yahoo.com/")).iterator(). next();; System.out.println("proxy hostname : " + proxy.type()); InetSocketAddress addr = (InetSocketAddress) proxy.address(); if (addr == null) { System.out.println("No Proxy"); } else { System.out.println("proxy hostname : " + addr.getHostName()); System.out.println("proxy port : " + addr.getPort()); } } }
结果
上面的代码示例将产生以下结果。
200 : OK true proxy hostname : HTTP proxy hostname : proxy.mycompany1.local proxy port : 80