【发布时间】:2020-03-16 09:14:10
【问题描述】:
我是 Spring Reactive 框架的新手,并尝试使用 Spring5 WebClient 进行异步调用。 我能够成功地进行与同步相同的调用。但面临异步调用的问题。
我正在使用以下代码进行异步调用:
Mono<ClientResponse> reponse = WebClient.builder().build().post()
.uri("http://api.com")
.body(BodyInserters.fromObject("data"))
.accept(MediaType.APPLICATION_JSON)
.header("Authorization", "Bearer blahblahblahblah")
.exchange();
// couple of logger messages and other statements
问题是它没有执行 API 调用并且没有给出响应。它继续执行其他语句,但它从不调用 API 调用。
我不想使用block() 方法,因为它会将其转换为同步调用。
我搜索了很多网站和文档,但异步调用使用的是相同的代码。但不确定为什么它不起作用。如果我错过了什么,谁能帮助我?
【问题讨论】:
-
如果这是一个 webflux 应用程序,您可能不应该订阅。发起呼叫的是订户。因此,如果有一个调用客户端,那么该调用客户端应该是订阅者。请发布您的完整代码。
标签: java spring spring-webflux