Class HttpHeaders

java.lang.Object
com.azure.core.http.HttpHeaders
All Implemented Interfaces:
Iterable<HttpHeader>

public class HttpHeaders extends Object implements Iterable<HttpHeader>
A collection of headers on an HTTP request or response.
  • Constructor Details

    • HttpHeaders

      public HttpHeaders()
      Create an empty HttpHeaders instance.
    • HttpHeaders

      public HttpHeaders(Map<String,String> headers)
      Create a HttpHeaders instance with the provided initial headers.
      Parameters:
      headers - the map of initial headers
    • HttpHeaders

      public HttpHeaders(Iterable<HttpHeader> headers)
      Create a HttpHeaders instance with the provided initial headers.
      Parameters:
      headers - the collection of initial headers
    • HttpHeaders

      public HttpHeaders(int initialCapacity)
      Create a HttpHeaders instance with an initial size empty headers
      Parameters:
      initialCapacity - the initial capacity of headers map.
  • Method Details

    • getSize

      public int getSize()
      Gets the number of headers in the collection.
      Returns:
      the number of headers in this collection.
    • add

      public HttpHeaders add(String name, String value)
      Adds a header with the given name and value if a header with that name doesn't already exist, otherwise adds the value to the existing header.
      Parameters:
      name - The name of the header.
      value - The value of the header.
      Returns:
      The updated HttpHeaders object.
    • put

      @Deprecated public HttpHeaders put(String name, String value)
      Deprecated.
      Use set(String, String) instead.
      Sets a header with the given name and value.

      If header with same name already exists then the value will be overwritten.

      Parameters:
      name - the name
      value - the value
      Returns:
      The updated HttpHeaders object
    • set

      public HttpHeaders set(String name, String value)
      Sets a header with the given name and value. If a header with same name already exists then the value will be overwritten. If the given value is null, the header with the given name will be removed.
      Parameters:
      name - the name to set in the header. If it is null, this method will return with no changes to the headers.
      value - the value
      Returns:
      The updated HttpHeaders object
    • set

      public HttpHeaders set(String name, List<String> values)
      Sets a header with the given name and the list of values provided, such that the given values will be comma-separated when necessary. If a header with same name already exists then the values will be overwritten. If the given values list is null, the header with the given name will be removed.
      Parameters:
      name - the name
      values - the values that will be comma-separated as appropriate
      Returns:
      The updated HttpHeaders object
    • setAll

      public HttpHeaders setAll(Map<String,List<String>> headers)
      Sets all provided header key/values pairs into this HttpHeaders instance. This is equivalent to calling headers.forEach(this::set), and therefore the behavior is as specified in set(String, List). In other words, this will create a header for each key in the provided map, replacing or removing an existing one, depending on the value. If the given values list is null, the header with the given name will be removed. If the given name is already a header, it will be removed and replaced with the headers provided.
      Parameters:
      headers - a map containing keys representing header names, and keys representing the associated values.
      Returns:
      The updated HttpHeaders object
    • get

      public HttpHeader get(String name)
      Gets the header for the provided header name. Null is returned if the header isn't found.
      Parameters:
      name - the name of the header to find.
      Returns:
      the header if found, null otherwise.
    • remove

      public HttpHeader remove(String name)
      Removes the header with the provided header name. Null is returned if the header isn't found.
      Parameters:
      name - the name of the header to remove.
      Returns:
      the header if removed, null otherwise.
    • getValue

      public String getValue(String name)
      Get the value for the provided header name. Null is returned if the header name isn't found.
      Parameters:
      name - the name of the header whose value is being retrieved.
      Returns:
      the value of the header, or null if the header isn't found
    • getValues

      public String[] getValues(String name)
      Get the values for the provided header name. Null is returned if the header name isn't found.

      This returns getValue split by comma.

      Parameters:
      name - the name of the header whose value is being retrieved.
      Returns:
      the values of the header, or null if the header isn't found
    • toMap

      public Map<String,String> toMap()
      Returns a copy of the http headers as an unmodifiable Map representation of the state of the headers at the time of the toMap call. This map will not change as the underlying http headers change, and nor will modifying the key or values contained in the map have any effect on the state of the http headers.

      Note that there may be performance implications of using Map APIs on the returned Map. It is highly recommended that users prefer to use alternate APIs present on the HttpHeaders class, over using APIs present on the returned Map class. For example, use the get(String) API, rather than httpHeaders.toMap().get(name).

      Returns:
      the headers in a copied and unmodifiable form.
    • iterator

      public Iterator<HttpHeader> iterator()
      Specified by:
      iterator in interface Iterable<HttpHeader>
    • stream

      public Stream<HttpHeader> stream()
      Get a Stream representation of the HttpHeader values in this instance.
      Returns:
      A Stream of all header values in this instance.
    • toString

      public String toString()
      Overrides:
      toString in class Object