Установка прокси в HtmlUnit - PullRequest
1 голос
/ 26 июля 2011

Я использую прокси с htmlunit, мой список прокси содержит смесь как http, так и socks, я не знаю, будет ли следующий выбранный прокси для передачи в htmlunit тип http или socks, htmlunit автоматически определит тип и будет использовать соответствующее правило для подключения через этот прокси?

Ответы [ 4 ]

1 голос
/ 26 июля 2011

Я сделал приложение, которое также использовало смесь прокси, но это было некоторое время назад. В этой версии HtmlUnit требовалось явно указать, был ли прокси SOCKS или нет, иначе предполагалось, что это HTTP-прокси. Я кратко посмотрел в журналах изменений и не нашел ничего, что указывало бы на то, что это изменилось, поэтому ответ должен быть «нет», он будет предполагать, что прокси-сервер HTTP, если вы не говорите HtmlUnit, что прокси-сервер SOCKS.

Чтобы проверить тип прокси, можно использовать что-то вроде:

SocketAddress addr = new InetSocketAddress("proxyAddress", port);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); //or Proxy.Type.SOCKS
URL url = new URL("http://google.com");
URConnection conn = url.openConnection(proxy);

Если код завершается ошибкой (т. Е. Генерируется исключение), то, скорее всего, прокси-сервер либо мертв, либо SOCKS. (HtmlUnit все равно сгенерирует исключение в первом случае, или вы можете выполнить тот же тест снова с Proxy.Type.SOCKS, если вы не уверены, что прокси жив.)

0 голосов
/ 25 июня 2017

Эта инфраструктура определяет тип прокси для вас и может создавать экземпляр веб-клиента HtmlUnit с правильной конфигурацией прокси-сервера Socks / Http / Https: https://github.com/subes/invesdwin-webproxy

По сути, она автоматизирует метод проб и ошибок при ведении списка проксивы.Так что вам не нужно беспокоиться об этом в своем собственном коде.

0 голосов
/ 23 декабря 2014

Два других ответа о том, как в общем случае использовать прокси в программе Java, но с HtmlUnit это немного отличаетсяУстановка прокси в процессе Java ничего не делает;вместо этого вы хотите, чтобы смоделированный браузер использовал прокси.

int myProxyPort=8080;
WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_8, "myproxyhost.com", myProxyPort);
0 голосов
/ 30 мая 2013

Оформить Сеть Java и прокси .

В нем рассказывается о нескольких стратегиях настройки прокси.Это также дает возможность предоставить несколько прокси для одного подключения через селектор прокси.

...