Появляется WebClient, который самостоятельно добавляет заголовки к запросу. Где это происходит?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Появляется WebClient, который самостоятельно добавляет заголовки к запросу. Где это происходит?

Сообщение Anonymous »

Вот неудачный тест:

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

// these are pretty basic dependencies so I won't include imports or pom
@Test
void testIfNoHeadersAreAddedToRequestImplicitly() {
Mono responseMono = WebClient.builder()
.baseUrl("https://httpbin.org")
.build()
.get()
.uri("/headers")
.retrieve()
.bodyToMono(new ParameterizedTypeReference() {});
StepVerifier.create(responseMono.map(m -> m.get("headers")).cast(Map.class))
.expectNextMatches(Map::isEmpty)
.verifyComplete();
}

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

    
org.springframework.boot
spring-boot-starter-parent
3.1.5
 



17
2022.0.4



org.springframework.cloud
spring-cloud-starter



org.springframework.cloud
spring-cloud-starter-gateway


org.springframework.boot
spring-boot-starter-test
test


org.wiremock
wiremock-standalone
3.5.1
test


io.projectreactor
reactor-test
test





org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import



Я почти уверен, что WebClient добавляет некоторые заголовки запросов по умолчанию, например HOST, и я хочу 👀 посмотреть, где они случается. Так получилось, что мне нужно отключить эту функцию, но я так же хочу 👀 увидеть причину
Пока моя отладка этой проблемы не увенчалась успехом. – включая отладку DefaultWebClient.exchange(), которая, похоже, работает должным образом
Однако я обнаружил, что этому обратному вызову передается неправильный запрос

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

// org.springframework.http.client.reactive.ReactorClientHttpConnector.connect(..)

return requestSender
// put a breakpoint on the lambda
.send((request, outbound) -> requestCallback.apply(adaptRequest(method, uri, request, outbound)))
Когда я копнул глубже, Нетти просто притворилась, что эти заголовки были всегда (как только появляется любой запрос, у него уже есть эти заголовки по умолчанию)
Проблема воспроизводится также с помощью WireMock, поэтому вряд ли он имеет какое-либо отношение к httpbin (кстати, если вы с ним не знакомы, вы можете посетить страницу API)

Подробнее здесь: https://stackoverflow.com/questions/782 ... -it-happen
Ответить

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

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

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

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

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