В настоящее время я использую ExchangeFilterFunction
для регистрации всех заголовков, которые находятся внутри экземпляра ClientRequest
, и я обращаюсь к ним, выполняя request.headers()
.
После того, как мой фильтр будет выполнен, нижняя строка HttpClient
добавляет определенные заголовки, такие как Accept-Encoding
, таким образом, не попадая в журнал, так как они никогда не добавляются в экземпляр ClientRequest
.
Мой фильтр выглядит следующим образом:
public class WebClientLoggingFilter implements ExchangeFilterFunction {
@Override
public Mono<ClientResponse> filter(final ClientRequest clientRequest, final ExchangeFunction next) {
return Mono.just(clientRequest)
.doOnNext(request -> log(request.headers().toString()))
.flatMap(next::exchange)
.doOnNext(clientResponse -> logData(clientRequestData, message, clientResponse));
}
}
Этот фильтр регистрирует все внутри ClientRequest
заголовков, но затем HttpClient
выполняет свою магию, которая никогда не поступает в ClientRequest, даже послеответ вернулся. Пример кода от Нетти.
Есть ли какой-либо другой способ ведения журнала, чтобы я мог получить доступ к тому, что он действительно отправляет по сети?