1

I would like to add multiple headers to a java HTTP request, I think this is possible using the headers() method in the httpRequest builder, but I can't seem to figure out how:

 HttpRequest request = HttpRequest.newBuilder()
            .POST()
            .headers(/*add mutple headers here*/)
            .uri(getUrl())
            .build();
Kebab Programmer
  • 1,213
  • 2
  • 21
  • 36
med talel
  • 17
  • 2
  • 5
  • Does this answer your question? [Adding map of httpheaders to builder](https://stackoverflow.com/questions/64726722/adding-map-of-httpheaders-to-builder) – Joe May 21 '21 at 10:45
  • You can check this link in StackOverflow for your question [How to set multiple headers at once in Spring WebClient?](https://stackoverflow.com/questions/59133508/how-to-set-multiple-headers-at-once-in-spring-webclient) – Shant Khayalian May 21 '21 at 10:59

2 Answers2

4

You can add multiple headers by invoking header(String,String) multiple times...

HttpRequest request2 = HttpRequest.newBuilder()
  .header("key1", "value1")
  .header("key2", "value2")
  ... stuff ...
  .build();

.. or you may use the varargs headers(String...) methods

HttpRequest request = HttpRequest.newBuilder()
  .headers("key1", "value1", "key2", "value2")
  ... stuff ...
  .build();
vsfDawg
  • 1,425
  • 1
  • 9
  • 12
2

The method headers allow you to pass a single key/value or a list of key/value https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpRequest.Builder.html#headers(java.lang.String...).

 HttpRequest request = HttpRequest.newBuilder()
            .POST()
            .headers("key1", "value1", "key2", "value2", "key3", "value3")
            .uri(getUrl())
            .build();
hyper7
  • 171
  • 8