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

Java - how to setup socks proxy with credentials

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

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

提前致谢

尝试进行身份验证时试试这个。

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

然后,像你现在做的那样正常初始化你的代理,除了身份验证(你得到错误的原因),这样做。

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