大佬教程收集整理的这篇文章主要介绍了向 WebClient 获取请求添加可选标头,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法向 WebClIEnt
get()
请求添加可选标头?
if (config.getrefresh()) {
webClIEnt.header("refresh-Cache","true");
}
似乎整个请求都链接在 webClIEnt
return webClIEnt
.get()
.uri(uri)
.header("Authorization",BEARER_TOKEN)
.retrIEve()
.bodyToMono(String.class)
.block();
我尝试切换到 requestheadersspec
,但收到此通用类型警告
WebClIEnt.requestheadersspec is a raw type. References to generic type
WebClIEnt.requestheadersspec<S> should be parameterized Java(16777788)
我知道post()
,我们可以做到这一点
requestbodySpec = webClIEntBuilder.build().post().uri(uri);
if (config.getrefresh()) {
requestbodySpec.header("refresh-Cache","true");
}
return requestbodySpec
.header("Authorization",BEARER_TOKEN)
.body(Mono.just(request),Myrequest.class)
.retrIEve()
.bodyToMono(String.class)
.block();
要解决泛型类型警告,您可以将泛型类型设置为通配符 (?) ie。
WebClient.requestHeadersSpec<?> requestBodySpec = webClient.get().uri("https://google.com");
根据配置中的标志添加标头的另一种解决方案是使用 ExchangeFilterFunction。
public class refreshExchangeFilterFunction implements ExchangeFilterFunction {
private Config config;
@Override
public Mono<ClientResponse> filter(Clientrequest request,ExchangeFunction next) {
if(config.isrefresh()) {
return next.exchange(Clientrequest.from(request)
.header("refresh-Cache","true")
.build());
}
return next.exchange(request);
}
}
这可以应用于需要此行为的任何/所有网络客户端
WebClient.builder()
.filter(refreshExchangeFilterFunction)
.build();
以上是大佬教程为你收集整理的向 WebClient 获取请求添加可选标头全部内容,希望文章能够帮你解决向 WebClient 获取请求添加可选标头所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。