Headers (Java SE 15 & JDK 15)
Description: declaration: module: jdk.httpserver, package: com.sun.net.httpserver, class: Headers
Keywords: com.sun.net.httpserver.Headers class

Module jdk.httpserver
Package com.sun.net.httpserver

# Class Headers

java.lang.Object
com.sun.net.httpserver.Headers

All Implemented Interfaces:
  `Map<String,​List<String>>`

    public class Headers
    extends Object
    implements Map<String,​List<String>>

HTTP request and response headers are represented by this class which implements the interface `Map`<`String`, `List` <`String`>>. The keys are case-insensitive Strings representing the header names and the value associated with each key is a `List`<`String`> with one element for each occurrence of the header name in the request or response.

For example, if a response header instance contains one key "HeaderName" with two values "value1 and value2" then this object is output as two header lines:

>      HeaderName: value1
>      HeaderName: value2

All the normal `Map` methods are provided, but the following additional convenience methods are most likely to be used:

- `getFirst(String)` returns a single valued header or the first value of a multi-valued header.
- `add(String,String)` adds the given header value to the list for the given key
- `set(String,String)` sets the given header field to the single value given overwriting any existing values in the value list.

All methods in this class accept `null` values for keys and values. However, null keys will never will be present in HTTP request headers, and will not be output/sent in response headers. Null values can be represented as either a null entry for the key (i.e. the list is null) or where the key has a list, but one (or more) of the list's values is null. Null values are output as a header line containing the key but no associated value.

Since:
  1.6

- ## Nested Class Summary

  ## Nested classes/interfaces declared in interface java.util.Map

  `Map.Entry<K,​V>`

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `Headers()` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `void` | `add​(String key, String value)` | adds the given value to the list of headers for the given key.
  `String` | `getFirst​(String key)` | returns the first value from the List of String values for the given key (if at least one exists).
  `void` | `set​(String key, String value)` | sets the given value as the sole header value for the given key.

  ### Methods declared in class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods declared in interface java.util.Map

  `clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values`

- ## Constructor Details

  - ### Headers

    public Headers()

- ## Method Details

  - ### getFirst

    public String getFirst​(String key)
    returns the first value from the List of String values for the given key (if at least one exists).
    Parameters:
      `key` - the key to search for
    Returns:
      the first string value associated with the key

  - ### add

    public void add​(String key, String value)
    adds the given value to the list of headers for the given key. If the mapping does not already exist, then it is created
    Parameters:
      `key` - the header name
      `value` - the header value to add to the header

  - ### set

    public void set​(String key, String value)
    sets the given value as the sole header value for the given key. If the mapping does not already exist, then it is created
    Parameters:
      `key` - the header name
      `value` - the header value to set.