3

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

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")但我仍然遇到同样的错误。谁能帮帮我吗。

提前致谢

4

1 回答 1

2

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

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

然后,通常初始化您的代理,就像您正在做的那样,除了身份验证(您收到错误的原因)之外,请执行此操作。

Authenticator.setDefault(getAuth(username, password));
于 2018-07-14T03:57:15.780 回答