webclient模板变量

2023-11-15 10:20:32 浏览数 (3)

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

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

例如这个方法:

代码语言:javascript复制
org.springframework.web.reactive.function.client.DefaultWebClient.DefaultRequestBodyUriSpec#uri(java.lang.String, java.lang.Object...)

此处如果直接使用:

代码语言:javascript复制
webClient.get().uri("/dev/v1/kicking-rule?appid={}", appId)

或者

代码语言:javascript复制
webClient.get().uri("/dev/v1/kicking-rule?appid=%s", appId)

哪怕

代码语言:javascript复制
webClient.get().uri("/dev/v1/kicking-rule?appid=%s", appId)

都是不行的。。。

正确的方式应该是:

代码语言:javascript复制
webClient.get().uri("/dev/v1/kicking-rule?appid={appId}", appId)

就想这样:

代码语言:javascript复制
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<>() {
                }));
    }

0 人点赞