У меня есть фрагмент кода для подключения к серверу Socket, и он работает нормально.
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, port));
Теперь я хочу подключиться через прокси-сервер HTTP, что мне делать?
Я попробовал это и потерпел неудачу
SocketAddress proxyAddr = new InetSocketAddress(proxyHost, proxyPort);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr);
Socket socket = new Socket(proxy);
socket.connect(new InetSocketAddress(address, port));
В этом посте предлагает использовать Jakarta Commons HttpClient , но как его использовать для подключения сервера Socket черезHTTP-прокси?
ОБНОВЛЕНО: Я использовал SOCKS-прокси, и он не работает, если я использую HTTP-прокси:
SocketAddress proxyAddr = new InetSocketAddress(proxyHost, proxyPort);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
Socket socket = new Socket(proxy);
socket.connect(new InetSocketAddress(address, port));
и он выдаст исключение IllegalArgumentException
java.lang.IllegalArgumentException: Proxy is null or invalid type
at java.net.Socket.<init>(Socket.java:88)