Spring WebFlux WebClient Einfügen leerer Körper für GET -AnfragenJava

Java-Forum
Anonymous
 Spring WebFlux WebClient Einfügen leerer Körper für GET -Anfragen

Post by Anonymous »

Ich verwende WebClient, um mich in externe GET-API < /p>
zu integrieren.WebClient webClient = WebClient.builder().filter(logRequestAndResponse()).baseUrl("url").build();
return webClient.get()
.uri(uriBuilder -> uriBuilder.path("path").queryParams(validatedRequestParams).build())
.headers(headers -> { headers.addAll(httpHeaders); })
.retrieve()
.toEntity(ResponseClass.class)
.block();

public ExchangeFilterFunction logRequestAndResponse() {
AtomicReference startTime = new AtomicReference();
ExchangeFilterFunction logRequest = ExchangeFilterFunction.ofRequestProcessor(clientRequest -> {
log.info("##### Request Body: {}", ObjectMapperHelper.mapToString(clientRequest.body()));

return Mono.just(clientRequest);
});

return logRequest.andThen((clientRequest, next) -> next.exchange(clientRequest)
.flatMap(clientResponse -> clientResponse.bodyToMono(String.class)
.defaultIfEmpty("")
.flatMap(body -> {
log.info("###response in: {}", body);
return Mono.just(clientResponse.mutate().body(body).build());
})
)
< /code>
Das Problem ist, dass dies immer zu einer leeren Körpernutzlast {} führt, obwohl kein Körper explizit hinzugefügt wird, was zu einem Fehler führt, da die externe API keinen Körper für die Anforderung erhalten. Wie kann ich verhindern, dass eine leere Nutzlast für die Get -Anfrage eingefügt wird?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post