java使用代理服务器访问网络

Posted on 2009-05-25 15:00  胡安峰  阅读(1050)  评论(0)    收藏  举报

Properties prop = System.getProperties();
//设置http访问要使用的代理服务器的地址
prop.setProperty("http.proxyHost", "10.10.0.96");
//设置http访问要使用的代理服务器的端口
prop.setProperty("http.proxyPort", "8080");
//设置不需要通过代理服务器访问的主机,可以使用*通配符,多个地址用|分隔
prop.setProperty("http.nonProxyHosts", "localhost|10.10.*");

//设置安全访问使用的代理服务器地址与端口
//它没有https.nonProxyHosts属性,它按照http.nonProxyHosts 中设置的规则访问
prop.setProperty("https.proxyHost", "10.10.0.96");
prop.setProperty("https.proxyPort", "443");

//使用ftp代理服务器的主机、端口以及不需要使用ftp代理服务器的主机
prop.setProperty("ftp.proxyHost", "10.10.0.96");
prop.setProperty("ftp.proxyPort", "2121");
prop.setProperty("ftp.nonProxyHosts", "localhost|10.10.*");

//socks代理服务器的地址与端口
prop.setProperty("socksProxyHost", "10.10.0.96");
prop.setProperty("socksProxyPort", "1080");

//设置登陆到代理服务器的用户名和密码
Authenticator.setDefault(new MyAuthenticator(uid, pwd));

class MyAuthenticator extends Authenticator {
    private String user = "";

    private String password = "";

    public MyAuthenticator(String user, String password) {
        this.user = user;
        this.password = password;
    }

    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(user, password.toCharArray());
    }

}