Java-如何使用凭据设置袜子代理

时间:2018-07-14 03:44:04

标签: java proxy httpurlconnection socks authenticator

嗨,亲爱的社区成员, 我是一个初学者,我正在尝试使用凭据设置袜子代理,因此我使用了以下代码。但它不起作用。

proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("myhost.com", 81));
Authenticator.setDefault(new ProxyAuthenticator("aaa","aaa"));
conn = (HttpURLConnection) url.openConnection(proxy);

我遇到错误

java.net.SocketException: SOCKS : authentication failed

我什至尝试了以下代码,但也无法正常工作。

proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("myhost.com", 81));
System.setProperty("java.net.socks.username","aaa");
System.setProperty("java.net.socks.password","aaa");

我尝试将它们结合起来,我尝试使用System.setProperty("socksProxyUser","aaa")System.setProperty("socksProxyPassword","aaa"),但是我仍然遇到相同的错误。有人可以帮我吗?

预先感谢

1 个答案:

答案 0 :(得分:1)

尝试进行身份验证时尝试此操作。

public Authenticator getAuth(String user, String password) {
    new Authenticator() {
        public PasswordAuthentication getPasswordAuthentication() {
            return (new PasswordAuthentication(user, password.toCharArray()));
        }
    };
}

然后,通常初始化您的代理,就像您的操作一样,除了身份验证(导致错误的原因)之外,

Authenticator.setDefault(getAuth(username, password));