在URLHttpConnection中使用代理服务器

原文出处: 在URLHttpConnection中使用代理服务器
作者: Jet Mah from Java堂

在JDK5之前如果在URLHttpConnection中使用代理服务器的话,只要在URL.openConnection()之前加入以下代码就可以:

Properties prop = System.getProperties();
prop.put(“http.proxyHost”, “120.0.0.1”);
prop.put(“http.proxyPort”, “1080”);

意思就是加入几个环境变量,然后URLHttpConnection在执行的时候会读取这些环境变量。

不过JDK5中URL增加了一个新的方法 openConnection(Proxy proxy),这样就可以直接设置代理地址了,代码如下:

// 请自行加上try…cache代码
URL url = new URL(“http://www.javatang.com”);
// 设置代理服务
SocketAddress add = new InetSocketAddress(“120.0.0.1”, “1080”);
Proxy p = new Proxy(Proxy.Type.SOCKS , add);
// 打开连接
HttpURLConnection conn = (HttpURLConnection)url.openConnection(p);

这样打开的连接就是使用代理服务器了,非常的方便。

如果代理服务器有用户名密码的话,操作跟JDK5之前的操作相同。在上面的代理后面增加如下代码:

String authentication = “proxyuser:proxypassword”;
String encodedLogin = new sun.misc.BASE64Encoder().encodeBuffer(authentication.getBytes());
connection.setRequestProperty(“Proxy-Authorization”, “Basic ” + encodedLogin);

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注