Проблема:
При попытке использовать прокси типа Proxy.Type.HTTP для создания сокета следующим кодом:
Proxy prx = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("webprox", 8888));вылетает исключение:
Socket socket = new Socket(prx);
java.lang.IllegalArgumentException: Invalid Proxy
Решение:
Действительно, при создании ява-сокета использовать HTTP-прокси нельзя, что, в общем-то, и логично =), ведь HTTP-прокси умеет работать только с протоколом HTTP, а сокет является более низкоуровневым объектом, не привязанным ни к какому протоколу прикладного уровня. А вот в URL.openConnection HTTP-прокси использовать уже можно, если, конечно, используемый урлом протокол http или https.
Для создания сокета, работающего через прокси, можно использовать только прокси типа Proxy.Type.SOCKS (и, соответственно, Ваш прокси должен поддерживать Socks).
Комментариев нет:
Отправить комментарий