Java WebClient-添加DefaultHeader
我试图将多个头放入defaultHeaders()中,但我不知道如何从createHeaders()方法的返回创建使用者对象Java WebClient-添加DefaultHeader,java,spring,spring-boot,webclient,spring-webflux,Java,Spring,Spring Boot,Webclient,Spring Webflux,我试图将多个头放入defaultHeaders()中,但我不知道如何从createHeaders()方法的返回创建使用者对象 但如何将其包装到消费者中?您可以这样做: WebClient client3 = WebClient .builder() .baseUrl(someConfiguration.getApiUrl()) .clientConnector(buildTimeoutConnector()) .defaultHeade
但如何将其包装到消费者中?您可以这样做:
WebClient client3 = WebClient
.builder()
.baseUrl(someConfiguration.getApiUrl())
.clientConnector(buildTimeoutConnector())
.defaultHeader(HttpHeaders.ACCEPT, V1_PUBLIC)
.defaultHeader(HttpHeaders.HOST, "abc")
.defaultHeader(HttpHeaders.AUTHORIZATION, "Bearer " + token)
.build();
很明显,方法文档说它需要某种类型的
消费者。因此,您可以创建一个实现消费者
接口的匿名类,或者像这样使用lambda表达式:
使用匿名内部类:
private HttpHeaders createHeaders(String token) {
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.ACCEPT, V1_PUBLIC);
headers.add(HttpHeaders.HOST, "abc");
headers.add(HttpHeaders.AUTHORIZATION, "Bearer " + token);
return headers;
}
WebClient client3 = WebClient
.builder()
.baseUrl(someConfiguration.getApiUrl())
.clientConnector(buildTimeoutConnector())
.defaultHeader(HttpHeaders.ACCEPT, V1_PUBLIC)
.defaultHeader(HttpHeaders.HOST, "abc")
.defaultHeader(HttpHeaders.AUTHORIZATION, "Bearer " + token)
.build();
this.someWebClient = WebClient.builder()
.baseUrl(someConfiguration.getApiUrl())
.clientConnector(buildTimeoutConnector())
.defaultHeaders(new Consumer<HttpHeaders>() {
@Override
public void accept(HttpHeaders httpHeaders) {
httpHeaders.addAll(createHeaders(token));
}
})
.build();
this.someWebClient = WebClient.builder()
.baseUrl(someConfiguration.getApiUrl())
.clientConnector(buildTimeoutConnector())
.defaultHeaders(httpHeaders -> {
httpHeaders.addAll(createHeaders(token));
})
.build();