Zhlw.com - 中华龙网

站长资讯通告:
搜索: 您的位置中华龙网 > 计算机网络 > 认证考试 > JAVA认证 > 文章列表

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

作者:bear  来源:转载  发布时间:2005-12-16 11:38:06

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

  ackage 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

  */

  ublic class ProxyConnTest {

  ublic static void initProxy(String host, int port

  final String password

  Authenticator.setDefault(new Authenticator() {

  rotected PasswordAuthentication getPasswordAuthentication() {

  return

  ew 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

  }

  ublic 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

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

  content += curLine;

  }

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

  is.close();

  }

  }


  

        用户名: 验证码: 验证码,看不清楚?请点击刷新验证码 (注“”为必填内容。)


文章评论: [ 查看全部 ] 网友评论
关于本站 - 网站帮助 - 广告合作 - 友情连接 - 网站地图