点击这里给我发消息 点击这里给我发消息

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

添加时间:2013-12-7
    相关阅读: 程序

  网上也有一些文章但是大多数涉及带有授权验证的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 username,
  
  final String password) {
  
  Authenticator.setDefault(new Authenticator() {
  
  rotected PasswordAuthentication getPasswordAuthentication() {
  
  return new PasswordAuthentication(username,
  
  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 = new BufferedReader(new InputStreamReader(is));
  
  while ((curLine = reader.readLine()) != null) {
  
  content += curLine;
  
  }
  
  System.out.println(\"content= \" + content);
  
  is.close();
  
  }
  
  }
咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册