我正在将 Java Spring WebFlux 用于客户端和服务器,并且我想通过向其添加自定义标头来自定义从客户端到服务器的请求。我已经将 WebFilter 用于另一个目的,但它似乎只适用于传入请求和响应(例如来自 FE 的请求及其响应)。
有多种方法可以指定自定义标头。
如果标头是静态的,您可以在期间指定它们WebClient
实例创建使用defaultHeader
or defaultHeaders
方法:
WebClient.builder().defaultHeader("headerName", "headerValue")
WebClient.builder().defaultHeaders(headers -> headers.add("h1", "hv1").add("h2", "hv2"))
如果标头是动态的,但标头值生成对于所有请求都是通用的,您可以使用ExchangeFilterFunction.ofRequestProcessor
配置期间WebClient
实例创建:
WebClient
.builder()
.filter(ExchangeFilterFunction.ofRequestProcessor(
request -> Mono.just(ClientRequest.from(request)
.header("X-HEADER-NAME", "value")
.build())
)
.build();
如果标头是动态的并且每次使用都是特定的WebClient
,您可以配置每次调用的标头:
webClient.get()
.header("headerName", getHeaderValue(params))
.retrieve();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)