过于重视行为规则、拘泥形式,往往在事业上错失良机。——培根

今天分享在使用webclient进行开发时的的一个小技巧

例如这个方法:

1
org.springframework.web.reactive.function.client.DefaultWebClient.DefaultRequestBodyUriSpec#uri(java.lang.String, java.lang.Object...)

此处如果直接使用:

1
webClient.get().uri("/dev/v1/kicking-rule?appid={}", appId)

或者

1
webClient.get().uri("/dev/v1/kicking-rule?appid=%s", appId)

哪怕

1
webClient.get().uri("/dev/v1/kicking-rule?appid=%s", appId)

都是不行的。。。

正确的方式应该是:

1
webClient.get().uri("/dev/v1/kicking-rule?appid={appId}", appId)

就想这样:

1
2
3
4
5
6
7
8
public Mono<RtcKickRuleQueryRes> getRtcKickRule() {
return webClient.get()
.uri("/dev/v1/kicking-rule?appid={appId}", appId)
.header(RtcRequestConst.AUTHORIZATION_KEY, getAuthorization())
.retrieve().bodyToMono(String.class)
.map(str -> JacksonUtils.toObj(str, new TypeReference<>() {
}));
}