Java - 如何使用凭据设置 socks 代理
Posted
技术标签:
【中文标题】Java - 如何使用凭据设置 socks 代理【英文标题】:Java - how to setup socks proxy with credentials 【发布时间】:2018-12-22 10:06:08 【问题描述】:您好亲爱的社区成员, 我是一个初学者,我正在尝试使用凭据设置 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")
,但我仍然遇到同样的错误。谁能帮帮我。
提前致谢
【问题讨论】:
【参考方案1】:尝试进行身份验证时尝试此操作。
public Authenticator getAuth(String user, String password)
new Authenticator()
public PasswordAuthentication getPasswordAuthentication()
return (new PasswordAuthentication(user, password.toCharArray()));
;
然后,正常初始化您的代理,就像您正在做的那样,除了身份验证(您收到错误的原因)之外,请执行此操作。
Authenticator.setDefault(getAuth(username, password));
【讨论】:
以上是关于Java - 如何使用凭据设置 socks 代理的主要内容,如果未能解决你的问题,请参考以下文章