web-dev-qa-db-fra.com

Comment définir plusieurs en-têtes à la fois dans Spring WebClient?

J'essayais de définir des en-têtes pour mon client de repos mais à chaque fois je dois écrire

webclient.get().uri("blah-blah")
         .header("key1", "value1")
         .header("key2", "value2")...

Comment puis-je définir tous les en-têtes en même temps en utilisant la méthode headers ()?

4
Amit Kumar

Si ces en-têtes changent sur une base par demande, vous pouvez utiliser:

webClient.get().uri("/resource").headers(httpHeaders -> {
    httpHeaders.setX("");
    httpHeaders.setY("");
});

Cela n'économise pas beaucoup de frappe; donc pour les en-têtes qui ne changent pas d'une requête à une autre, vous pouvez les définir comme en-têtes par défaut lors de la construction du client:

WebClient webClient = WebClient.builder().defaultHeader("...", "...").build();
WebClient webClient = WebClient.builder().defaultHeaders(httpHeaders -> {
    httpHeaders.setX("");
    httpHeaders.setY("");
}).build();
1
Brian Clozel