public final class HttpHeaders extends Object
An HttpHeaders
is not typically created directly, but rather returned from an HttpRequest
or an HttpResponse
. Specific HTTP headers can be set for a request through one of the request builder's headers
methods.
The methods of this class ( that accept a String header name ), and the Map
returned by the map
method, operate without regard to case when retrieving the header value(s).
An HTTP header name may appear more than once in the HTTP protocol. As such, headers are represented as a name and a list of values. Each occurrence of a header value is added verbatim, to the appropriate header name list, without interpreting its value. In particular, HttpHeaders
does not perform any splitting or joining of comma separated header value strings. The order of elements in a header value list is preserved when building
a request. For responses, the order of elements in a header value list is the order in which they were received. The Map
returned by the map
method, however, does not provide any guarantee with regard to the ordering of its entries.
HttpHeaders
instances are immutable.
Modifier and Type | Method | Description |
---|---|---|
List |
allValues |
Returns an unmodifiable List of all of the header string values of the given named header. |
final boolean |
equals |
Tests this HTTP headers instance for equality with the given object. |
Optional |
firstValue |
Returns an Optional containing the first header string value of the given named (and possibly multi-valued) header. |
OptionalLong |
firstValueAsLong |
Returns an OptionalLong containing the first header string value of the named header field. |
final int |
hashCode() |
Computes a hash code for this HTTP headers instance. |
Map |
map() |
Returns an unmodifiable multi Map view of this HttpHeaders. |
static HttpHeaders |
of |
Returns an HTTP headers from the given map. |
String |
toString() |
Returns this HTTP headers as a string. |
public Optional<String> firstValue(String name)
Optional
containing the first header string value of the given named (and possibly multi-valued) header. If the header is not present, then the returned Optional
is empty.name
- the header nameOptional<String>
containing the first named header string value, if presentpublic OptionalLong firstValueAsLong(String name)
OptionalLong
containing the first header string value of the named header field. If the header is not present, then the Optional is empty. If the header is present but contains a value that does not parse as a Long
value, then an exception is thrown.name
- the header nameOptionalLong
NumberFormatException
- if a value is found, but does not parse as a Longpublic List<String> allValues(String name)
name
- the header namepublic Map<String,List<String>> map()
public final boolean equals(Object obj)
If the given object is not an HttpHeaders
then this method returns false
. Two HTTP headers are equal if each of their corresponding maps are equal.
This method satisfies the general contract of the Object.equals
method.
public final int hashCode()
The hash code is based upon the components of the HTTP headers map
, and satisfies the general contract of the Object.hashCode
method.
public String toString()
public static HttpHeaders of(Map<String,List<String>> headerMap, BiPredicate<String,String> filter)
An HTTP header name may appear more than once in the HTTP protocol. Such, multi-valued, headers must be represented by a single entry in the given map, whose entry value is a list that represents the multiple header string values. Leading and trailing whitespaces are removed from all string values retrieved from the given map and its lists before processing. Only headers that, after filtering, contain at least one, possibly empty string, value will be added to the HTTP headers.
HttpRequest
headers
methods.headerMap
- the map containing the header names and valuesfilter
- a filter that can be used to inspect each header-name-and-value pair in the given map to determine if it should, or should not, be added to the to the HTTP headersNullPointerException
- if any of: headerMap
, a key or value in the given map, or an entry in the map's value list, or filter
, is null
IllegalArgumentException
- if the given headerMap
contains any two keys that are equal ( without regard to case ); or if the given map contains any key whose length, after trimming whitespaces, is 0
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.net.http/java/net/http/HttpHeaders.html