在春季网络流量中捕获响应



有没有办法在春季Webflux中捕获响应体。我知道这违反了反应性原则,但是我需要捕获身体并返回响应。我正在使用 ExchangeFilterFunction。

public Optional<ExchangeFilterFunction> buildEnricher() {
return Optional.of(ExchangeFilterFunction.ofResponseProcessor(clientResponse -> {
return clientResponse.bodyToMono(String.class)
.flatMap(body -> {
System.out.println(body);
return Mono.just(clientResponse);
});
}));

这最终会消耗身体并发送一个空客户端 响应。有没有办法我也可以把尸体送回去?

您可以选择克隆客户端响应。

ClientResponse responseClone = ClientResponse.from(clientResponse)

您现在可以从responseClone中排出身体并返回Mono.just(clientResponse)

最新更新