如何使用WebClient执行同步请求?

How to use WebClient to execute synchronous request?

Spring 文档指出,即使我们要执行同步 http 调用,我们也必须从 RestTemplate 切换到 WebClient

现在我有以下代码:

  Mono<ResponseEntity<PdResponseDto>> responseEntityMono = webClient.post()
                .bodyValue(myDto)
                .retrieve()
                .toEntity(MyDto.class);
        responseEntityMono.subscribe(resp -> log.info("Response is {}", resp));
   //I have to return response here
   // return resp;

我当然可以在这里使用 CountdownLatch,但看起来 API 误用了。

如何执行同步请求?

有效:

webClient.post()
         .bodyValue(myDto)
         .retrieve()
         .toEntity(MyDto.class)
         .block(); // <-- This line makes trick