Java Rest服务Post呼叫不适用于Spring Webclient

Java Rest服务Post呼叫不适用于Spring Webclient,java,spring-boot,spring-webflux,spring-rest,spring-webclient,Java,Spring Boot,Spring Webflux,Spring Rest,Spring Webclient,我需要异步调用rest服务,并考虑使用SpringReactive的webclient而不是AsyncRestTemplate。但是,下面的代码根本不会调用我的url Mono<Test> asyncResponse = webClientBuilder.build().post().uri(url).contentType(MediaType.APPLICATION_JSON) .header("h1", h1).header("h2", h2)

我需要异步调用rest服务,并考虑使用SpringReactive的webclient而不是AsyncRestTemplate。但是,下面的代码根本不会调用我的url

Mono<Test> asyncResponse = webClientBuilder.build().post().uri(url).contentType(MediaType.APPLICATION_JSON)
                .header("h1", h1).header("h2", h2)
                .body(BodyInserters.fromObject(request))
                .retrieve().bodyToMono(Test.class);

我做错了什么?

交换并不意味着同步。它响应
Mono
。您需要
subscribe()
block()
在某个地方订阅流

exchange
retrieve
的区别在于:它们的退货类型不同;exchange方法提供ClientResponse及其状态、标题,而retrieve方法是直接获取正文的最短路径。你可以参考

webClientBuilder.build().post().uri(url).contentType(MediaType.APPLICATION_JSON)
                .header("h1", h1).header("h2", h2)
                .body(BodyInserters.fromObject(request))
                .exchange();`