public class HttpHeaders extends Object implements MultiValueMap<String,String>, Serializable
In addition to the normal methods defined by Map
, this class offers the following convenience methods:
getFirst(String)
returns the first value associated with a given header nameadd(String, String)
adds a header value to the list of values for a header nameset(String, String)
sets the header value to a single string valueInspired by Headers
.
Modifier and Type | Field and Description |
---|---|
static String |
ACCEPT
The HTTP
Accept header field name. |
static String |
ACCEPT_CHARSET
The HTTP
Accept-Charset header field name. |
static String |
ACCEPT_ENCODING
The HTTP
Accept-Encoding header field name. |
static String |
ACCEPT_LANGUAGE
The HTTP
Accept-Language header field name. |
static String |
ACCEPT_RANGES
The HTTP
Accept-Ranges header field name. |
static String |
AGE
The HTTP
Age header field name. |
static String |
ALLOW
The HTTP
Allow header field name. |
static String |
AUTHORIZATION
The HTTP
Authorization header field name. |
static String |
CACHE_CONTROL
The HTTP
Cache-Control header field name. |
static String |
CONNECTION
The HTTP
Connection header field name. |
static String |
CONTENT_DISPOSITION
The HTTP
Content-Disposition header field name |
static String |
CONTENT_ENCODING
The HTTP
Content-Encoding header field name. |
static String |
CONTENT_LANGUAGE
The HTTP
Content-Language header field name. |
static String |
CONTENT_LENGTH
The HTTP
Content-Length header field name. |
static String |
CONTENT_LOCATION
The HTTP
Content-Location header field name. |
static String |
CONTENT_RANGE
The HTTP
Content-Range header field name. |
static String |
CONTENT_TYPE
The HTTP
Content-Type header field name. |
static String |
COOKIE
The HTTP
Cookie header field name. |
static String |
DATE
The HTTP
Date header field name. |
static String |
ETAG
The HTTP
ETag header field name. |
static String |
EXPECT
The HTTP
Expect header field name. |
static String |
EXPIRES
The HTTP
Expires header field name. |
static String |
FROM
The HTTP
From header field name. |
static String |
HOST
The HTTP
Host header field name. |
static String |
IF_MATCH
The HTTP
If-Match header field name. |
static String |
IF_MODIFIED_SINCE
The HTTP
If-Modified-Since header field name. |
static String |
IF_NONE_MATCH
The HTTP
If-None-Match header field name. |
static String |
IF_RANGE
The HTTP
If-Range header field name. |
static String |
IF_UNMODIFIED_SINCE
The HTTP
If-Unmodified-Since header field name. |
static String |
LAST_MODIFIED
The HTTP
Last-Modified header field name. |
static String |
LINK
The HTTP
Link header field name. |
static String |
LOCATION
The HTTP
Location header field name. |
static String |
MAX_FORWARDS
The HTTP
Max-Forwards header field name. |
static String |
ORIGIN
The HTTP
Origin header field name. |
static String |
PRAGMA
The HTTP
Pragma header field name. |
static String |
PROXY_AUTHENTICATE
The HTTP
Proxy-Authenticate header field name. |
static String |
PROXY_AUTHORIZATION
The HTTP
Proxy-Authorization header field name. |
static String |
RANGE
The HTTP
Range header field name. |
static String |
REFERER
The HTTP
Referer header field name. |
static String |
RETRY_AFTER
The HTTP
Retry-After header field name. |
static String |
SERVER
The HTTP
Server header field name. |
static String |
SET_COOKIE
The HTTP
Set-Cookie header field name. |
static String |
SET_COOKIE2
The HTTP
Set-Cookie2 header field name. |
static String |
TE
The HTTP
TE header field name. |
static String |
TRAILER
The HTTP
Trailer header field name. |
static String |
TRANSFER_ENCODING
The HTTP
Transfer-Encoding header field name. |
static String |
UPGRADE
The HTTP
Upgrade header field name. |
static String |
USER_AGENT
The HTTP
User-Agent header field name. |
static String |
VARY
The HTTP
Vary header field name. |
static String |
VIA
The HTTP
Via header field name. |
static String |
WARNING
The HTTP
Warning header field name. |
static String |
WWW_AUTHENTICATE
The HTTP
WWW-Authenticate header field name. |
Constructor and Description |
---|
HttpHeaders()
Constructs a new, empty instance of the
HttpHeaders object. |
Modifier and Type | Method and Description |
---|---|
void |
add(String headerName,
String headerValue)
Add the given, single header value under the given name.
|
void |
clear() |
boolean |
containsKey(Object key) |
boolean |
containsValue(Object value) |
Set<Map.Entry<String,List<String>>> |
entrySet() |
boolean |
equals(Object other) |
List<String> |
get(Object key) |
List<MediaType> |
getAccept()
Return the list of acceptable media types, as specified by the
Accept header. |
List<Charset> |
getAcceptCharset()
Return the list of acceptable charsets, as specified by the
Accept-Charset
header. |
Set<HttpMethod> |
getAllow()
Return the set of allowed
HTTP methods , as specified by the Allow header. |
String |
getCacheControl()
Returns the value of the
Cache-Control header. |
List<String> |
getConnection()
Returns the value of the
Connection header. |
long |
getContentLength()
Return the length of the body in bytes, as specified by the
Content-Length header. |
MediaType |
getContentType()
Return the media type of the body, as specified by the
Content-Type header. |
long |
getDate()
Returns the date and time at which the message was created, as specified by the
Date header. |
String |
getETag()
Returns the entity tag of the body, as specified by the
ETag header. |
long |
getExpires()
Returns the date and time at which the message is no longer valid, as specified by
the
Expires header. |
String |
getFirst(String headerName)
Return the first header value for the given header name, if any.
|
long |
getFirstDate(String headerName)
Parse the first header value for the given header name as a date, return -1 if
there is no value, or raise
IllegalArgumentException if the value cannot be
parsed as a date. |
protected List<String> |
getFirstValueAsList(String header) |
long |
getIfModifiedSince()
Returns the value of the
If-Modified-Since header. |
List<String> |
getIfNoneMatch()
Returns the value of the
If-None-Match header. |
long |
getIfNotModifiedSince()
Deprecated.
|
long |
getLastModified()
Returns the time the resource was last changed, as specified by the
Last-Modified header. |
URI |
getLocation()
Return the (new) location of a resource, as specified by the
Location header. |
String |
getOrigin()
Returns the value of the
Origin header. |
String |
getPragma()
Returns the value of the
Pragma header. |
String |
getUpgrade()
Returns the value of the
Upgrade header. |
int |
hashCode() |
boolean |
isEmpty() |
Set<String> |
keySet() |
List<String> |
put(String key,
List<String> value) |
void |
putAll(Map<? extends String,? extends List<String>> m) |
static HttpHeaders |
readOnlyHttpHeaders(HttpHeaders headers)
Returns
HttpHeaders object that can only be read, not written to. |
List<String> |
remove(Object key) |
void |
set(String headerName,
String headerValue)
Set the given, single header value under the given name.
|
void |
setAccept(List<MediaType> acceptableMediaTypes)
Set the list of acceptable media types, as specified by the
Accept header. |
void |
setAcceptCharset(List<Charset> acceptableCharsets)
Set the list of acceptable charsets, as specified by the
Accept-Charset header. |
void |
setAll(Map<String,String> values)
Set the given values under.
|
void |
setAllow(Set<HttpMethod> allowedMethods)
Set the set of allowed
HTTP methods , as specified by the Allow header. |
void |
setCacheControl(String cacheControl)
Sets the (new) value of the
Cache-Control header. |
void |
setConnection(List<String> connection)
Sets the (new) value of the
Connection header. |
void |
setConnection(String connection)
Sets the (new) value of the
Connection header. |
void |
setContentDispositionFormData(String name,
String filename)
Sets the (new) value of the
Content-Disposition header for form-data . |
void |
setContentLength(long contentLength)
Set the length of the body in bytes, as specified by the
Content-Length header. |
void |
setContentType(MediaType mediaType)
Set the media type of the body, as specified by the
Content-Type header. |
void |
setDate(long date)
Sets the date and time at which the message was created, as specified by the
Date header. |
void |
setDate(String headerName,
long date)
Set the given date under the given header name after formatting it as a string
using the pattern
"EEE, dd MMM yyyy HH:mm:ss zzz" . |
void |
setETag(String eTag)
Sets the (new) entity tag of the body, as specified by the
ETag header. |
void |
setExpires(long expires)
Sets the date and time at which the message is no longer valid, as specified by the
Expires header. |
void |
setIfModifiedSince(long ifModifiedSince)
Sets the (new) value of the
If-Modified-Since header. |
void |
setIfNoneMatch(List<String> ifNoneMatchList)
Sets the (new) values of the
If-None-Match header. |
void |
setIfNoneMatch(String ifNoneMatch)
Sets the (new) value of the
If-None-Match header. |
void |
setLastModified(long lastModified)
Sets the time the resource was last changed, as specified by the
Last-Modified header. |
void |
setLocation(URI location)
Set the (new) location of a resource, as specified by the
Location header. |
void |
setOrigin(String origin)
Sets the (new) value of the
Origin header. |
void |
setPragma(String pragma)
Sets the (new) value of the
Pragma header. |
void |
setUpgrade(String upgrade)
Sets the (new) value of the
Upgrade header. |
int |
size() |
protected String |
toCommaDelimitedString(List<String> list) |
Map<String,String> |
toSingleValueMap()
Returns the first values contained in this
MultiValueMap . |
String |
toString() |
Collection<List<String>> |
values() |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
public static final String ACCEPT
Accept
header field name.public static final String ACCEPT_CHARSET
Accept-Charset
header field name.public static final String ACCEPT_ENCODING
Accept-Encoding
header field name.public static final String ACCEPT_LANGUAGE
Accept-Language
header field name.public static final String ACCEPT_RANGES
Accept-Ranges
header field name.public static final String AGE
Age
header field name.public static final String ALLOW
Allow
header field name.public static final String AUTHORIZATION
Authorization
header field name.public static final String CACHE_CONTROL
Cache-Control
header field name.public static final String CONNECTION
Connection
header field name.public static final String CONTENT_ENCODING
Content-Encoding
header field name.public static final String CONTENT_DISPOSITION
Content-Disposition
header field namepublic static final String CONTENT_LANGUAGE
Content-Language
header field name.public static final String CONTENT_LENGTH
Content-Length
header field name.public static final String CONTENT_LOCATION
Content-Location
header field name.public static final String CONTENT_RANGE
Content-Range
header field name.public static final String CONTENT_TYPE
Content-Type
header field name.public static final String COOKIE
Cookie
header field name.public static final String DATE
Date
header field name.public static final String ETAG
ETag
header field name.public static final String EXPECT
Expect
header field name.public static final String EXPIRES
Expires
header field name.public static final String FROM
From
header field name.public static final String HOST
Host
header field name.public static final String IF_MATCH
If-Match
header field name.public static final String IF_MODIFIED_SINCE
If-Modified-Since
header field name.public static final String IF_NONE_MATCH
If-None-Match
header field name.public static final String IF_RANGE
If-Range
header field name.public static final String IF_UNMODIFIED_SINCE
If-Unmodified-Since
header field name.public static final String LAST_MODIFIED
Last-Modified
header field name.public static final String LINK
Link
header field name.public static final String LOCATION
Location
header field name.public static final String MAX_FORWARDS
Max-Forwards
header field name.public static final String ORIGIN
Origin
header field name.public static final String PRAGMA
Pragma
header field name.public static final String PROXY_AUTHENTICATE
Proxy-Authenticate
header field name.public static final String PROXY_AUTHORIZATION
Proxy-Authorization
header field name.public static final String RANGE
Range
header field name.public static final String REFERER
Referer
header field name.public static final String RETRY_AFTER
Retry-After
header field name.public static final String SERVER
Server
header field name.public static final String SET_COOKIE
Set-Cookie
header field name.public static final String SET_COOKIE2
Set-Cookie2
header field name.public static final String TE
TE
header field name.public static final String TRAILER
Trailer
header field name.public static final String TRANSFER_ENCODING
Transfer-Encoding
header field name.public static final String UPGRADE
Upgrade
header field name.public static final String USER_AGENT
User-Agent
header field name.public static final String VARY
Vary
header field name.public static final String VIA
Via
header field name.public static final String WARNING
Warning
header field name.public static final String WWW_AUTHENTICATE
WWW-Authenticate
header field name.public HttpHeaders()
HttpHeaders
object.public static HttpHeaders readOnlyHttpHeaders(HttpHeaders headers)
HttpHeaders
object that can only be read, not written to.public void setAccept(List<MediaType> acceptableMediaTypes)
Accept
header.acceptableMediaTypes
- the acceptable media typespublic List<MediaType> getAccept()
Accept
header.
Returns an empty list when the acceptable media types are unspecified.
public void setAcceptCharset(List<Charset> acceptableCharsets)
Accept-Charset
header.acceptableCharsets
- the acceptable charsetspublic List<Charset> getAcceptCharset()
Accept-Charset
header.public void setAllow(Set<HttpMethod> allowedMethods)
HTTP methods
, as specified by the Allow
header.allowedMethods
- the allowed methodspublic Set<HttpMethod> getAllow()
HTTP methods
, as specified by the Allow
header.
Returns an empty set when the allowed methods are unspecified.
public void setCacheControl(String cacheControl)
Cache-Control
header.cacheControl
- the value of the headerpublic String getCacheControl()
Cache-Control
header.public void setConnection(String connection)
Connection
header.connection
- the value of the headerpublic void setConnection(List<String> connection)
Connection
header.connection
- the value of the headerpublic List<String> getConnection()
Connection
header.public void setContentDispositionFormData(String name, String filename)
Content-Disposition
header for form-data
.name
- the control namefilename
- the filename, may be null
public void setContentLength(long contentLength)
Content-Length
header.contentLength
- the content lengthpublic long getContentLength()
Content-Length
header.
Returns -1 when the content-length is unknown.
public void setContentType(MediaType mediaType)
Content-Type
header.mediaType
- the media typepublic MediaType getContentType()
Content-Type
header.
Returns null
when the content-type is unknown.
public void setDate(long date)
Date
header.
The date should be specified as the number of milliseconds since January 1, 1970 GMT.
date
- the datepublic long getDate()
Date
header.
The date is returned as the number of milliseconds since January 1, 1970 GMT. Returns -1 when the date is unknown.
IllegalArgumentException
- if the value can't be converted to a datepublic void setETag(String eTag)
ETag
header.eTag
- the new entity tagpublic String getETag()
ETag
header.public void setExpires(long expires)
Expires
header.
The date should be specified as the number of milliseconds since January 1, 1970 GMT.
expires
- the new expires header valuepublic long getExpires()
Expires
header.
The date is returned as the number of milliseconds since January 1, 1970 GMT. Returns -1 when the date is unknown.
public void setIfModifiedSince(long ifModifiedSince)
If-Modified-Since
header.
The date should be specified as the number of milliseconds since January 1, 1970 GMT.
ifModifiedSince
- the new value of the header@Deprecated public long getIfNotModifiedSince()
getIfModifiedSince()
IfModifiedSince
header.
The date is returned as the number of milliseconds since January 1, 1970 GMT. Returns -1 when the date is unknown.
public long getIfModifiedSince()
If-Modified-Since
header.
The date is returned as the number of milliseconds since January 1, 1970 GMT. Returns -1 when the date is unknown.
public void setIfNoneMatch(String ifNoneMatch)
If-None-Match
header.ifNoneMatch
- the new value of the headerpublic void setIfNoneMatch(List<String> ifNoneMatchList)
If-None-Match
header.ifNoneMatchList
- the new value of the headerpublic List<String> getIfNoneMatch()
If-None-Match
header.public void setLastModified(long lastModified)
Last-Modified
header.
The date should be specified as the number of milliseconds since January 1, 1970 GMT.
lastModified
- the last modified datepublic long getLastModified()
Last-Modified
header.
The date is returned as the number of milliseconds since January 1, 1970 GMT. Returns -1 when the date is unknown.
public void setLocation(URI location)
Location
header.location
- the locationpublic URI getLocation()
Location
header.
Returns null
when the location is unknown.
public void setOrigin(String origin)
Origin
header.origin
- the value of the headerpublic String getOrigin()
Origin
header.public void setPragma(String pragma)
Pragma
header.pragma
- the value of the headerpublic String getPragma()
Pragma
header.public void setUpgrade(String upgrade)
Upgrade
header.upgrade
- the value of the headerpublic String getUpgrade()
Upgrade
header.public long getFirstDate(String headerName)
IllegalArgumentException
if the value cannot be
parsed as a date.public void setDate(String headerName, long date)
"EEE, dd MMM yyyy HH:mm:ss zzz"
. The equivalent of
set(String, String)
but for date headers.public String getFirst(String headerName)
getFirst
in interface MultiValueMap<String,String>
headerName
- the header namenull
public void add(String headerName, String headerValue)
add
in interface MultiValueMap<String,String>
headerName
- the header nameheaderValue
- the header valueUnsupportedOperationException
- if adding headers is not supportedput(String, List)
,
set(String, String)
public void set(String headerName, String headerValue)
set
in interface MultiValueMap<String,String>
headerName
- the header nameheaderValue
- the header valueUnsupportedOperationException
- if adding headers is not supportedput(String, List)
,
add(String, String)
public void setAll(Map<String,String> values)
MultiValueMap
setAll
in interface MultiValueMap<String,String>
values
- the values.public Map<String,String> toSingleValueMap()
MultiValueMap
MultiValueMap
.toSingleValueMap
in interface MultiValueMap<String,String>
public boolean containsKey(Object key)
containsKey
in interface Map<String,List<String>>
public boolean containsValue(Object value)
containsValue
in interface Map<String,List<String>>
public Collection<List<String>> values()
public boolean equals(Object other)
public int hashCode()