8

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

现在我有以下代码:

  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 滥用。

我怎么能执行同步请求?

4

1 回答 1

16

有用:

webClient.post()
         .bodyValue(myDto)
         .retrieve()
         .toEntity(MyDto.class)
         .block(); // <-- This line makes trick
于 2019-11-07T14:39:34.247 回答