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

时间:2019-11-07 14:30:25

标签: java spring spring-boot spring-webflux spring-webclient

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。

如何执行同步请求?

1 个答案:

答案 0 :(得分:0)

有效:

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