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

原创 2007年10月11日 19:11:00
java sample codes that access outer internet through proxy which require username and password

use inner instead of extends is the most different

  网上也有一些文章但是大多数涉及带有授权验证的proxy都有问题,主要问题就是出在对 Authenticator.setDefault的使用,以及base64编码的问题上代码是最没有二义性的文档,实现原理不再解释,请看代码去体会。

chimae@cnjsp.org

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();
}

}


 

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

java程序如何穿透带有密码验证的代理java  sample codes  that access outer internet through proxy which require userna...
  • heimaoxiaozi
  • heimaoxiaozi
  • 2007-02-11 14:33:00
  • 840

用Winsock穿透各种代理-精品源代码 用Winsock穿透各种代理-精品源代码

  • 2009年10月11日 02:23
  • 351KB
  • 下载

Http代理穿透技术

穿透代理服务器编程  http://blog.csdn.net/snail8384/article/details/3613373 透过代理看世界 用VC++实现http代理 h...
  • blade2001
  • blade2001
  • 2012-09-26 15:43:33
  • 1019

原生socket穿透HTTP代理服务器

原生socket穿透HTTP代理服务器的算法,这是几年前预研的结果,如有需要的朋友,可以和我联系,我帮着找找看。...
  • pony12
  • pony12
  • 2014-05-10 17:05:23
  • 4267

java实现穿透代理获取客户端真实ip .

经过代理或者代理服务器以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回 给客户端。但是在转发请求的HTTP头信息中,增加了X-...
  • liu22985342
  • liu22985342
  • 2014-02-17 14:16:12
  • 1627

用Java编写通过代理访问的应用程序

本技巧将向您讲述如何编写可通过代理访问因特网上的Web服务器的Java应用程序。在Java应用程序中加入代理支持只需额外编写几行代码,且不依赖任何安全性“漏洞”。  几乎所有的公司都十分关注保护自己的...
  • lxgood8
  • lxgood8
  • 2007-03-20 16:46:00
  • 703

设置HtmlUnitDriver代理及处理用户验证问题

Proxy proxy = new Proxy();         //设置代理服务器地址         proxy.setHttpProxy("代理服务器地址:端口号");        ...
  • hong0220
  • hong0220
  • 2015-01-06 16:01:43
  • 1829

解决firefox频繁询问代理服务器用户名和密码问题

使用代理服务器连接internet的局域网用户,肯定会设置firefox记住用户名和密码。但是偏偏有的时候打开一个网页,会弹出十几次输入用户名和密码的对话框。解决方法很简单也真的很管用(有人说要让ff...
  • yh880610
  • yh880610
  • 2014-01-06 10:54:58
  • 2298

Java算法---密码验证合格程序

这是一道华为oj上的字符串题目,分享一下。 题目描述: 密码要求:1.长度超过8位              2.包括大小写字母.数字.其它符号,以上四种至少三种            3.不能有相同...
  • csdn_yaobo
  • csdn_yaobo
  • 2015-12-17 10:12:11
  • 2164

python 采集使用代理身份验证的3个情况

1、urllib2: proxy_support = urllib2.ProxyHandler({"http": "http://"+user+":"+pwd+"@%s" % proxiip}) op...
  • huagangwang
  • huagangwang
  • 2017-09-20 14:20:51
  • 634
收藏助手
不良信息举报
您举报文章:用Java程序如何穿透带有密码验证的代理
举报原因:
原因补充:

(最多只允许输入30个字)