我尝试使用套接字创建SSLSocket,但我得到了这个异常
SocketAddress proxyAddr = new InetSocketAddress(proxyHost, proxyPort);
Socket underlying = new Socket(new Proxy(Proxy.Type.SOCKS, proxyAddr));
underlying.connect(new InetSocketAddress(host, port));
SSLSocket socket = (SSLSocket) factory.createSocket(underlying,proxyHost,proxyPort,true);
例外: java.net.SocketException:来自SOCKS服务器的格式错误的回复
感谢您的帮助
答案 0 :(得分:0)
您已将应用程序配置为使用SOCKS代理,但您指定为proxyAddr
的host:port上的实体不是SOCKS服务器。
答案 1 :(得分:0)
解决此问题:
1)打开工具 - > Internet Explorer中的Internet选项(或Windows 7中的控制面板网络设置)
2)打开“连接”选项卡
3)单击LAN设置
4)如果"使用代理服务器"已启用,单击高级并禁用"对所有协议使用相同的代理服务器"
答案 2 :(得分:0)
这仅控制Internet Explorer的功能。与它无关 Java。 OP的代码是显式地使用SOCKS代理,或试图这样做。 不依赖任何控制面板设置
Windows错误。...Internet选项控制Windows使用Proxyserver的方式,Internet Explorer只是使用“ Windows Standard配置”的一个应用程序。 Standardconfig中的Java使用“ Systemstandard”进行连接,因此,如果您不通过Java指定代理服务器,则此解决方法会有所帮助,但这不是“解决方案”。