您的位置:首页 > 理论基础 > 计算机网络

通过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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: