让URLConnection使用代理服务器
JDK的文档对使用代理服务器的介绍很少,据说JDK5.0好象增加了这方面的内容。其实要使用代理服务器很简单,只要在URL.openConnection()之前增加下面的代码即可:
Properties prop = System.getProperties(); prop.put("http.proxyHost", getProxyHost()); prop.put("http.proxyPort", "" + getProxyPort());
也就是给系统变量里增加了两个项,在执行程序时加上参数“-Dhttp.proxyHost=xxx”的效果也是一样的。
若代理服务器需要验证,则还要使用以下代码:
String authentication = getProxyUser() + ":" + getProxyPassword(); String encodedLogin = new sun.misc.BASE64Encoder().encodeBuffer(authentication.getBytes()); connection.setRequestProperty("Proxy-Authorization", "Basic " + encodedLogin);
也就是在Http头上增加了Proxy-Authorization信息。
更多属性:http://java.sun.com/j2se/1.4.2/docs/guide/net/properties.html