Захват ответа весной Webflux - PullRequest
0 голосов
/ 13 октября 2019

Есть ли способ захвата тела ответа весной 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);
                    });
    }));

Это приведет к тому, что тело будет загружено и отправлено пустой ответ клиента. Могу ли я в любом случае отправить тело обратно?

1 Ответ

0 голосов
/ 14 октября 2019

Вы можете выбрать клонирование ответа клиента.

ClientResponse responseClone = ClientResponse.from(clientResponse)

Теперь вы можете удалить тело из responseClone и вернуть Mono.just(clientResponse)

...