webclient set header 反应方式
webclient set header reactive way
我是 WebFlux 和反应式编程方式的新手。我正在使用 WebClient 调用 REST 服务,在进行调用时,我需要设置 HTTP header,HTTP header 的值来自反应流,但是 header WebClient 上的方法只接受字符串值...
Mono<String> getHeader() {
...
}
webClient
.post()
.uri("/test")
.body(Mono.just(req),req.getClass())
.header("myHeader",getHeader())
...
上面的行不会编译,因为 header 方法将字符串作为第二个参数。如果值来自反应流,我如何设置 header?
您只需要使用 flatMap
链接 getHeader
和 Web 客户端请求来创建反应流
return getHeader()
.flatMap(header ->
webClient
.post()
.uri("/test")
.header("myHeader", header)
.body(BodyInserters.fromValue(req))
...
)
我是 WebFlux 和反应式编程方式的新手。我正在使用 WebClient 调用 REST 服务,在进行调用时,我需要设置 HTTP header,HTTP header 的值来自反应流,但是 header WebClient 上的方法只接受字符串值...
Mono<String> getHeader() {
...
}
webClient
.post()
.uri("/test")
.body(Mono.just(req),req.getClass())
.header("myHeader",getHeader())
...
上面的行不会编译,因为 header 方法将字符串作为第二个参数。如果值来自反应流,我如何设置 header?
您只需要使用 flatMap
链接 getHeader
和 Web 客户端请求来创建反应流
return getHeader()
.flatMap(header ->
webClient
.post()
.uri("/test")
.header("myHeader", header)
.body(BodyInserters.fromValue(req))
...
)