У меня есть программа на Java, которая до прошлой недели работала без проблем. Теперь я получаю ошибку HTTP 406 при попытке подключиться к веб-страницам. Ниже приведен код:
Document doc1;
doc1 = Jsoup.connect(sChartLink).timeout(iTimeOut).get();
ITimeout установлен на 15000. Пример sChartLink - https://www.investing.com/equities/allianz-ag
Я также использую потоки для этой программы, чтобы я мог запускать несколько процессов в течение заданного времени.
Любая помощь будет принята с благодарностью
Эдди Рэй
406 Not Acceptable - это код состояния ответа HTTP, указывающий, что клиент запросил ответ, используя заголовки Accept-, которые сервер не может выполнить. Обычно это является результатом того, что пользовательский агент (то есть браузер) указывает допустимый набор символов (через Accept-Charset), язык (через Accept-Language) и т. д., На которые следует ответить, и сервер не может предоставить такие ответ. Поэтому вам следует изменить заголовок запроса и повторить попытку.
Я добавил поле UserAgent к соединению для JSoup, но я все еще получаю эту ошибку ... String ua = "Mozilla / 4.0 (совместимый; MSIE 6.0; Windows NT 5.0)"; doc2 = Jsoup.connect (sPPChartLink) .timeout (0) .userAgent (ua) .get (); Не могли бы вы посоветовать, что еще попробовать?
1. Попробуйте получить сетевой пакет, например установите WIRESHARK, чтобы получить данные об отправке / получении, затем сравните пакет с обычным. 2, вы можете обратиться за помощью к поставщику услуг.
Я не думаю, что здесь проблема в вашем коде. Я считаю, что Investing.com поймет, что вы пытаетесь добыть их данные, и начнет возвращать HTTP 406.
Итак, как мне изменить приведенное выше утверждение?