Java中在程序中设置代理服务器

在 Java 中代理服务器的基本设置是通过设置系统属性来完成的。而代理服务器的验证则是通过设置 Http 请求头来完成的。
下面的是一个简单的例子供大家参考:

// 根据地址 url 打开 Http 连接
HttpURLConnection con = (HttpURLConnection)( new URL( url ) ).openConnection();
if (proxy.hasProxy()) {
// 注意: 如果 proxySet 为 false 时,依然设置了 proxyHost 和 proxyPort,代理设置仍会起作用。
// 如果 proxyPort 设置有问题,代理设置不会起作用。
System.getProperties().put( "proxySet", "true" );
System.getProperties().put( "proxyHost", proxy.getProxyHost() );
System.getProperties().put( "proxyPort", String.valueOf( proxy.getProxyPort() ) );

// 如果需要代理服务器验证,在 Http 请求头中加入 Proxy-Authorization 头,
// 格式为: "Basic " + ("代理服务器用户名:密码"的 BASE64 编码)
if (proxy.needAuth()) {
con.setRequestProperty( "Proxy-Authorization", "Basic " + Encoder.base64Encode( proxy.getProxyUser() + ":" + proxy.getProxyPass() ) );
}
}

-------------------------------------------------------------

public void Proxy(String ip,String port)
{
 String sUrl = "http://www.baidu.com";
 Properties prop = System.getProperties();
 prop.put("proxySet", "true");
 prop.put("proxyHost", ip);
 prop.put("proxyPort", port);
 System.setProperties(prop);
 try {
 URL su = new URL(sUrl);
 System.out.println("url:" + su);
 URLConnection uc = su.openConnection();
          System.out.println("uc:" + uc);        
 InputStream is = su.openStream();
 System.out.println("ic:" + is.read());
 is.close();
 System.out.println("ok");
 } catch (Exception e) {
 e.printStackTrace();
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值