为什么我的 SOCKS 代理代码会抛出SocketException: Malformed reply from SOCKS server?我试过在 URLConnection 或其他中设置,但这不起作用。唯一有效的东西 - chilkat lib,但它是商业的。那么,例如,我如何通过 ASOCKS 代理发出 http 请求?也许存在一些免费的库?
例如,该代码:
SocketAddress addr = new InetSocketAddress(proxy_ip, proxy_port);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr);
Socket socket = new Socket(proxy);
InetSocketAddress dest = new InetSocketAddress("google.com", 80);
try {
socket.connect(dest);
} catch (IOException ex) {
Logger.getLogger(CheckProxy.class.getName()).log(Level.SEVERE, null, ex);
}
Run Code Online (Sandbox Code Playgroud)
抛出异常:
java.net.SocketException: Malformed reply from SOCKS server
at java.net.SocksSocketImpl.readSocksReply(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at proxychecker.CheckProxy.SocksCheck(CheckProxy.java:86)
Run Code Online (Sandbox Code Playgroud)
其中第 86 行是“socket.connect(dest);”