通过HttpURLConnection如何使用代理服务器连接公网
2010-04-13 16:00
766 查看
在openConnection之前加上
Properties prop = System.getProperties();
System.getProperties().put("proxySet","true");
// 设置http访问要使用的代理服务器的地址
prop.setProperty("http.proxyHost","xxxxxxx");
// 设置http访问要使用的代理服务器的端口
prop.setProperty("http.proxyPort","xxxxx");
然后并不像有的贴子说的那样添加
prop.setProperty("http.proxyUser","xxxxxxxx");
prop.setProperty("http.proxyPassword","xxxxx");
添加这样的内容是不行的,而是将"username:password"进行base64编码,具体代码如下
String authentication = "username:password";
String encodedLogin = new BASE64Encoder().encode(authentication.getBytes());
httpurlconnection.setRequestProperty("Proxy-Authorization", " Basic " + encodedLogin);
注意BASE64Encoder().encode(authentication.getBytes());这里不能使用BASE64Encoder().encodeBuffer(authentication.getBytes())否则报错
具体原因参考sun公布的JDK BUG , Bug ID: 4615330 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4615330
Properties prop = System.getProperties();
System.getProperties().put("proxySet","true");
// 设置http访问要使用的代理服务器的地址
prop.setProperty("http.proxyHost","xxxxxxx");
// 设置http访问要使用的代理服务器的端口
prop.setProperty("http.proxyPort","xxxxx");
然后并不像有的贴子说的那样添加
prop.setProperty("http.proxyUser","xxxxxxxx");
prop.setProperty("http.proxyPassword","xxxxx");
添加这样的内容是不行的,而是将"username:password"进行base64编码,具体代码如下
String authentication = "username:password";
String encodedLogin = new BASE64Encoder().encode(authentication.getBytes());
httpurlconnection.setRequestProperty("Proxy-Authorization", " Basic " + encodedLogin);
注意BASE64Encoder().encode(authentication.getBytes());这里不能使用BASE64Encoder().encodeBuffer(authentication.getBytes())否则报错
具体原因参考sun公布的JDK BUG , Bug ID: 4615330 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4615330
相关文章推荐
- HttpURLConnection如何使用代理服务器连接公网
- Android HttpUrlConnection如何使用Https连接
- 如何通过HttpURLConnection得到http 302的跳转地址
- 使用HttpURLConnection通过post请求服务器时,URLEncode编码的必要性
- Java Http连接中(HttpURLConnection)中使用代理(Proxy)及其验证(Authentication)
- Java客户端通过HttpURLConnection连接Web服务器的Session保存问题
- 如何刷新或清除HttpURLConnection的连接缓存
- Android中如何使用HttpURLConnection实现GET POST JSON数据
- 在STRUTS中如何通过request获取从HttpURLConnection写出的流对象
- 如何通过HttpURLConnection得到http 302的跳转地址
- 如何通过HttpURLConnection得到http 302的跳转地址
- android 如何使用httpurlconnection下载一张图片demo
- Java Http连接中(HttpURLConnection)中使用代理(Proxy)及其验证(Authentication)
- HttpURLConnection连接网页和获取数据的使用实例
- Java客户端通过HttpURLConnection连接Web服务器的Session保存问题
- 通过api使用HttpURLConnection 获取返回天气数据。
- android客户端通过Get方式提交参数给服务器,使用URL和HttpURLConnection实现,以及乱码问题解决
- Java Http连接中(HttpURLConnection)中使用代理(Proxy)及其验证(Authentication)
- 如何发送HTTP请求之一:使用HttpURLConnection(入门篇)
- springmvc创建restful接口通过HttpURLConnection创建连接传递数据