Как мне найти разницу между вызовами Apache HttpClient в JVM Windows и JVM Linux [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как мне найти разницу между вызовами Apache HttpClient в JVM Windows и JVM Linux [закрыто]

Сообщение Anonymous »

Я разрабатываю приложение Spring Boot, которое обрабатывает данные с веб-сайта без API; в частности, я отправляю запросы на cardmarket.com.
При запуске моего приложения с помощью Eclipse Temurin JDK 21.0.7 для Windows cardmarket.com отвечает 200 OK на следующий HTTP-запрос:

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

HEAD https://www.cardmarket.com/en/Magic
Accept: */*
Accept: text/html
Accept-Charset: UTF-8
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
User-Agent: CardMarket Analyzer (Proto)
Host: www.cardmarket.com
Запуск приложения на ПК с Linux с помощью Eclipse Temurin JDK 21.0.7 (для Linux) приводит к ошибке 403 ЗАПРЕЩЕНО
Я использую пакет Apache HttpClient (

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

org.apache.httpcomponents.client5.httpclient5
) для конфигурации RestClient:

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

@Bean
public RestClient restClient(ObjectMapper jsonMapper) {
return RestClient.builder()
.requestFactory(new HttpComponentsClientHttpRequestFactory())
.messageConverters(List.of(
new MappingJackson2HttpMessageConverter(jsonMapper),
new StringHttpMessageConverter(StandardCharsets.UTF_8)))
.defaultHeaders(httpHeaders -> {
httpHeaders.addAll(HttpHeaders.ACCEPT, List.of(MediaType.ALL_VALUE, MediaType.TEXT_HTML_VALUE));
httpHeaders.add(HttpHeaders.ACCEPT_CHARSET, StandardCharsets.UTF_8.name());
httpHeaders.add(HttpHeaders.ACCEPT_ENCODING, "gzip, deflate, br");
httpHeaders.add(HttpHeaders.CONNECTION, "keep-alive");
httpHeaders.add(HttpHeaders.USER_AGENT, "CardMarket Analyzer (Proto)");
})
.build();
}
Использование отладчика для просмотра кода Java во время выполнения не выявило каких-либо различий в конфигурации реализаций HttpClient или RestClient.
Я не могу воспроизвести поведение своего приложения Windows с помощью cURL, но могу воспроизвести его с помощью Postman. Оба ответа 200 OK и 403 FORBIDDEN имеют заголовок Vary: Accept-Encoding.
Хочу подчеркнуть: я запускаю одну и ту же сборку на обеих машинах, но поведение все равно разное.
Я предполагаю, что, поскольку запросы используют HTTPS, поведение не может быть различным, если только запросы не различаются.
Чего мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ws-jvm-and
Ответить

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

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

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

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

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