Веб-клиент htmlunit получает 403 после нескольких звонков - PullRequest
0 голосов
/ 05 марта 2019

Я использую следующую версию htmlunit

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.141.59</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>htmlunit-driver</artifactId>
        <version>2.33.3</version>
    </dependency>

Что мой код делает

  1. Создание веб-клиента с версией браузера CHROME
  2. Получить вебзайдите на страницу и выполните вход в систему, используя html-форму
  3. , используя тот же клиент, получите другие веб-страницы и проанализируйте информацию

Это прекрасно работает, если я делаю это от 1 до 3 раз подряд, но после этого он получает следующую ошибку 403 для любой последующей попытки сделать то же самое.

mar 05, 2019 12:57:49 PM com.gargoylesoftware.htmlunit.WebClient printContentIfNecessary 
INFO: statusCode=[403] contentType=[application/json] 
mar 05, 2019 12:57:49 PM com.gargoylesoftware.htmlunit.WebClient printContentIfNecessary
INFO: {"error_description":"Access Denied","error_uri":"HTTP://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html","error":"Access Denied"}
mar 05, 2019 12:57:49 PM com.gargoylesoftware.htmlunit.WebClient printContentIfNecessary
INFO: statusCode=[403] contentType=[application/json] 
mar 05, 2019 12:57:49 PM com.gargoylesoftware.htmlunit.WebClient printContentIfNecessary
INFO: {"error_description":"Access Denied","error_uri":"HTTP://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html","error":"Access Denied"}
java.nio.file.AccessDeniedException: Access Denied

Я попытался очистить куки клиента и закрыть клиент, чтобы повторить попытку, но он получает те же 403.

Однако, если я прекращаю выполнение программы и запускаю ее снова, она 3 раза ведет себя правильно и после этого начинает получать 403 секунды.

Я пытаюсь спать 3 минутыперед попыткой повторной попытки с новым клиентом и кажется, что он работает достаточно для успешного завершения повторной попытки, но следующая попытка получает 403 и должна снова ждать.

Я предполагаю, что сервер отрицает tОн получает доступ к нескольким сеансам, но я хочу знать, есть ли способ «очистить» среду и повторить попытку, аналогично тому, что происходит, когда вы останавливаете выполнение и снова запускаете программу.

С момента очисткикуки в cookieManager не работали. Я не знаю, что еще я мог бы попытаться смоделировать остановкой и запустить снова.

...