我正在尝试使用 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);
}
这是第二个电话:
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);