В 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