网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Java Applet程序设计基础.
.JDK开发工具包.
.SWT:实现自我绘制的Button组件.
.从头到脚跟你解释什么是Hibernate.
.如何提高软件的可测试性.
.如何在J2ME的低级界面中轻松实现.
.用Solstice Enterprise Manager建.
.如何迅速成为java高手(推荐初学.
.Sun开发者日 2008年3月-4月在线报.
.内部窗体设计与窗体定位.
.动画小程序实现的基本步骤.
.请关注J2ME WTK2.2 的新特性.
.JAVA教程:解析Java的多线程机制.
.编写多线程的Java应用程序-如何避.
.Eclipse插件开发快速入门.
.采用POI和ANTLR提取WORD文档数据.
.Java模式设计之单例模式(一).
.封装JNDI操作LDAP服务器的工具类.
.为Web应用程序创建测试用例的办法.
.无线JAVA的移动游戏解决方案.

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

发表日期:2008-1-5


  网上也有一些文章但是大多数涉及带有授权验证的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();
}

}



上一篇:详述:JAVA也能克隆! 人气:538
下一篇:Java十大热点问题调查揭晓 人气:560
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐