八进制

少年壮志无烟抽

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  231 随笔 :: 0 文章 :: 2956 评论 :: 11 Trackbacks

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

posted on 2005-01-11 21:47 八进制 阅读(2442) 评论(4)  编辑 收藏 所属分类: Java

评论

#1楼  2005-03-19 17:10 johnway [未注册用户]
直接连上代理,然后get 的时候写完整的url,也是可以的。我觉得这种方法还快些。
  回复  引用    

#2楼  2005-10-28 23:28 jason1208 [未注册用户]
public static void main(
String[] args)
{
System.setProperty(
"proxySet", "true" );
System.setProperty(
"http.proxyHost",
"myproxy" );
System.setProperty(
"http.proxyPort", "8080" );

System.setProperty(
"http.proxyUser", "xxx");
System.setProperty(
"http.proxyPassword",
"yyy");
...
}

  回复  引用    

#3楼  2007-04-10 10:40 知识库 [未注册用户]
哈,太好了
  回复  引用    

#4楼  2008-05-20 17:39 WilliamW [未注册用户]
把代理服务器设置成一个错误的IP地址,程序依然可以正常运行,就是说这段程序虽然设置了代理服务器,但一旦程序发现代理是错误的,就会直接连接到目的地址而不经过代理服务器。
  回复  引用