今天分享一个场景:
在对接声网rtc
时,遇到一个请求,需要在delete
请求中携带request body
所使用的请求框架是webflux
的webclient
如果我们正常使用delete
方法来构建请求,是无法通过bodyValue
传入body
的
但是这里我们可以直接使用:
/** * 封禁用户权限-更新规则 * <a href="https://docportal.shengwang.cn/cn/All/rtc_channel_management_restfulapi?platform=Android#%E6%9B%B4%E6%96%B0%E8%A7%84%E5%88%99"> */ public Mono<RtcAddDelKickRuleRes> delRtcKickRule(RtcDelKickRuleDTO dto) { dto.setAppId(appId); return webClient.method(HttpMethod.DELETE).uri("/dev/v1/kicking-rule") .header(RtcRequestConst.AUTHORIZATION_KEY, getAuthorization()) .bodyValue(dto).retrieve().bodyToMono(String.class) .map(str -> JacksonUtils.toObj(str, new TypeReference<>() { })); }
实现我们通过delete
请求,且携带request body
进行对接
注意这并不是标准的写法,建议在api
设计时候不要这样设计