职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 1387|回复: 0

java程序如何穿透带有密码验证的代理

[复制链接]
joe 发表于 2007-1-23 19:23 | 显示全部楼层 |阅读模式
网上也有一些文章但是大多数涉及带有授权验证的proxy都有问题,主要问题就是出在对Authenticator.setDefault的使用,以及base64编码的问题上代码是最没有二义性的文档,实现原理不再解释,请看代码去体会。如果转载请注明代码出处。

package org.chimae.net;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.Authenticator;

import java.net.HttpURLConnection;

import java.net.PasswordAuthentication;

import java.net.URL;

/**

* @author chimae@cnjsp.org

*/

public class ProxyConnTest {

public static void initProxy(String host, int port, final String username,

final String password) {

Authenticator.setDefault(new Authenticator() {

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(username,

new String(password).toCharArray());

}

});

System.setProperty(\\\\\"http.proxyType\\\\\", \\\\\"4\\\\\");

System.setProperty(\\\\\"http.proxyPort\\\\\", Integer.toString(port));

System.setProperty(\\\\\"http.proxyHost\\\\\", host);

System.setProperty(\\\\\"http.proxySet\\\\\", \\\\\"true\\\\\");

}

public static void main(String[] args) throws IOException {

String url = \\\\\"http://java.sun.com/\\\\\";

String proxy = \\\\\"yourProxy\\\\\";

int port =8080;

String username =\\\\\"username\\\\\";

String password =\\\\\"password\\\\\";

String curLine = \\\\\"\\\\\";

String content = \\\\\"\\\\\";

URL server = new URL(url);

initProxy(proxy,port,username,password);

HttpURLConnection connection = (HttpURLConnection)server.openConnection();

connection.connect();

InputStream is = connection.getInputStream();

BufferedReader reader = new BufferedReader(new InputStreamReader(is));

while ((curLine = reader.readLine()) != null) {

content += curLine;

}

System.out.println(\\\\\"content= \\\\\" + content);

is.close();

}

}
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-10 23:45 , Processed in 0.123064 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表