Java HTTP-клиент выдает 403, тогда как почтальон всегда выдает 200 [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java HTTP-клиент выдает 403, тогда как почтальон всегда выдает 200 [закрыто]

Сообщение Anonymous »

Я использую Java Apache Httpclient org.apache.hc.client5.* для загрузки веб-страницы.
В Postman я могу загрузить эту страницу, всегда получая 200|ОК сообщений.< /p>
Когда я использую приведенный ниже код, я редко (обычно после внесения изменений) получаю ответ 200|OK. Обычно я получаю ответ 403.
Заголовки, которые указаны в списке в разделе //необязательно, я пытался включить или не включать их, чтобы увидеть результат, но, похоже, это не дало никакого эффекта.
Заголовок Postman-Token отправляется Postman, это кажется логичным не включать его, но я пробовал с и без него.
Какова может быть причина такого поведения?
SERVER_URL указывает на www.{ name}.fr сайт, который возвращает ответ в формате HTML.

Код: Выделить всё

URIBuilder builder;
try {
builder = new URIBuilder(SERVER_URL);
HttpGet httpGet = new HttpGet(builder.build());

httpGet.setHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0");
httpGet.setHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8");
httpGet.setHeader("Accept-Language", "en-US,en;q=0.5");
httpGet.setHeader("Accept-Encoding", "gzip, deflate, br, zstd");
httpGet.setHeader("Upgrade-Insecure-Requests", "1");
httpGet.setHeader("Sec-Fetch-Dest", "document");
httpGet.setHeader("Sec-Fetch-Mode", "navigate");
httpGet.setHeader("Sec-Fetch-Site", "none");
httpGet.setHeader("Sec-Fetch-User", "?1");
httpGet.setHeader("Connection", "keep-alive");

//Optional
httpGet.setHeader("Cookie", "(Lotsacookiestuff)");
httpGet.setHeader("Host", "{URL}");
httpGet.setHeader("Cache-Control", "no-cache");
httpGet.setHeader("Postman-Token", "01234567-89ab-cdef-0123-456789abcdef");
try (CloseableHttpClient httpclient = HttpClients.createDefault();CloseableHttpResponse response = httpclient.execute(httpGet)) {
if (200 == response.getCode()) {
HttpEntity entity = response.getEntity();
String result = (EntityUtils.toString(entity));
EntityUtils.consume(entity);
}
else {
//Log error
}
}
}
catch (IOException | URISyntaxException | ParseException e) {
//Log error
}
`
Я подумал, что, возможно, HTTP-клиент Apache устанавливает дополнительный заголовок помимо заголовков, которые я устанавливаю, но после этого я распечатал все заголовки устанавливая их, и в нем перечислены только заголовки, которые я устанавливаю.
Я пытался найти возможность удалить все настройки по умолчанию с помощью CloseableHttpClient httpclient = HttpClients.custom().disableDefaultUserAgent().build() (и варианты Disable_xxx), но это ничего не улучшило.
Чтобы загрузить информацию в Postman, я использовал «Копировать как завиток» в инспекторе Firefox и импортировал ее в Postman. Он по-прежнему работает, независимо от того, сколько раз я обновляю его.
Если я скопирую тот же завиток в Insomnia (программу с открытым исходным кодом, которая делает то же, что и Postman), я также получаю ошибку 403.

Подробнее здесь: https://stackoverflow.com/questions/788 ... -gives-200
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Клиент Ktor выдает исключение ввода-вывода в Android в ответе http 200
    Anonymous » » в форуме Android
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Клиент Ktor выдает исключение ввода-вывода в Android в ответе http 200
    Anonymous » » в форуме Android
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Клиент Ktor выдает исключение ввода-вывода в Android в ответе http 200
    Anonymous » » в форуме Android
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Клиент Ktor выдает исключение ввода-вывода в Android в ответе http 200
    Anonymous » » в форуме Android
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • API Spring Boot выдает 403 после множества успешных 200 ответов
    Anonymous » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»