java程序如何穿透带有密码验证的代理
2005-04-21 19:23
567 查看
网上也有一些文章但是大多数涉及带有授权验证的proxy都有问题,
主要问题就是出在对 Authenticator.setDefault的使用,以及base64编码的问题上
代码是最没有二义性的文档,实现原理不再解释,请看代码去体会。
如果转载请注明代码出处。
Java sample codes that access outer internet through proxy which require username and password .Use inner instead of extends is the most different
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();
}
}
主要问题就是出在对 Authenticator.setDefault的使用,以及base64编码的问题上
代码是最没有二义性的文档,实现原理不再解释,请看代码去体会。
如果转载请注明代码出处。
Java sample codes that access outer internet through proxy which require username and password .Use inner instead of extends is the most different
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程序如何穿透带有密码验证的代理
- 用Java程序如何穿透带有密码验证的代理
- java程序如何穿透带有密码验证的代理
- 如何在主Form出现之前,弹出密码验证From,Cancel就退出程序,Ok后密码正确才出现主Form
- Java-NowCoder-密码验证合格程序
- java web 程序---注册页面密码验证
- 浅谈:如何用C#实现简单的带有验证码及密码使用MD5加密的“登录”WinForm小程序
- 在java程序中如何读写带有Geometry对象的表
- java程序中,数据验证,如何判断输入的文本框中的值是不是int型?
- java程序中,数据验证,如何判断输入的文本框中的值是不是int型?
- Java - 华为机试训练 - 密码验证合格程序(正则表达式判断)
- 防止sql注入方法 如何防止java中将MySQL的数据库验证密码加上 ' or '1'= '1 就可以出现万能密码 的PreparedStatement
- 如何在Flex builder上添加开发Java程序功能
- 如何运行用记事本写的java程序
- 如何让java程序最小化至系统托盘
- java如何计算程序运行时间
- 关于 Java源文件带有package的普通程序和Applet编译和运行时错误的处理方法