如何使用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
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