【发布时间】:2019-10-24 22:59:33
【问题描述】:
我正在尝试使用 webclient 调用 2 次调用的 api。
第一次调用返回一个令牌
第二次调用使用令牌并询问一些数据。
怎么做??
我尝试过先调用并使用GetToken().block(),但在运行时我有一个错误...
我试过了:
GetToken().flatmap( x -> { GetDataRequest dataRequest = new GetDataRequest(x);
return this.GetData(dataRequest);
}
这是第一次调用:
private Mono<GetTokenResponse> GetToken() {
return
weblicent.post().uri("GetToken").contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON_UTF8)
.syncBody(request)
.retrieve()
.bodyToMono(GetTokenResponse.class);
}
this.is 第二次调用:
private Mono<GetDataResponse> GetData(GetDataRequest dataRequest) {
return
weblicent.post().uri("GetData")
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON_UTF8)
.syncBody(dataRequest)
.retrieve()
.bodyToMono(GetDataResponse.class);
【问题讨论】:
-
首先,如果您使用块,那么使用响应式编程有什么意义?为了做出反应,您必须链接呼叫并在第二个呼叫中使用第一个呼叫。你的错误信息是什么?
标签: spring-boot spring-webclient