• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

servlet/jsp 搞代码 7年前 (2018-06-18) 117次浏览 已收录 0个评论

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

chimae@cnjsp.org

http://www.gaodaima.com/40873.htmljava程序如何穿透带有密码验证的代理

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程序如何穿透带有密码验证的代理》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:java程序如何穿透带有密码验证的代理

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址