## org.springframework.http
Class HttpHeaders

    java.lang.Object
      org.springframework.http.HttpHeaders

All Implemented Interfaces:
  Map<String,List<String>>, MultiValueMap<String,String>

    public class HttpHeaders

extends Object
implements MultiValueMap<String,String>

Represents HTTP request and response headers, mapping string header names to list of string values.

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 name
- `add(String, String)` adds a header value to the list of values for a header name
- `set(String, String)` sets the header value to a single string value

Inspired by `Headers`.

Since:
  3.0
Author:
  Arjen Poutsma

Nested Class Summary

Nested classes/interfaces inherited from interface java.util.Map
`Map.Entry<K,V>`

Constructor Summary
`HttpHeaders()` Constructs a new, empty instance of the `HttpHeaders` object.

Method Summary
`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.
`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.
`List<String>` `getIfNoneMatch()` Returns the value of the `If-None-Match` header.
`long` `getIfNotModifiedSince()` Returns the value of the `IfModifiedSince` header.
`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` `getPragma()` Returns the value of the `Pragma` 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` `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` `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` `setPragma(String pragma)` Sets the (new) value of the `Pragma` header.
`int` `size()`
`Map<String,String>` `toSingleValueMap()` Returns the first values contained in this `MultiValueMap`.
`String` `toString()`
`Collection<List<String>>` `values()`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### HttpHeaders

    public HttpHeaders()

  Constructs a new, empty instance of the `HttpHeaders` object.

Method Detail

### readOnlyHttpHeaders

    public static HttpHeaders readOnlyHttpHeaders(HttpHeaders headers)

  Returns `HttpHeaders` object that can only be read, not written to.

### setAccept

    public void setAccept(List<MediaType> acceptableMediaTypes)

  Set the list of acceptable media types, as specified by the `Accept` header.

  Parameters:
    `acceptableMediaTypes` - the acceptable media types

### getAccept

    public List<MediaType> getAccept()

  Return the list of acceptable media types, as specified by the `Accept` header.

  Returns an empty list when the acceptable media types are unspecified.

  Returns:
    the acceptable media types

### setAcceptCharset

    public void setAcceptCharset(List<Charset> acceptableCharsets)

  Set the list of acceptable charsets, as specified by the `Accept-Charset` header.

  Parameters:
    `acceptableCharsets` - the acceptable charsets

### getAcceptCharset

    public List<Charset> getAcceptCharset()

  Return the list of acceptable charsets, as specified by the `Accept-Charset` header.

  Returns:
    the acceptable charsets

### setAllow

    public void setAllow(Set<HttpMethod> allowedMethods)

  Set the set of allowed `HTTP methods`, as specified by the `Allow` header.

  Parameters:
    `allowedMethods` - the allowed methods

### getAllow

    public Set<HttpMethod> getAllow()

  Return the set of allowed `HTTP methods`, as specified by the `Allow` header.

  Returns an empty set when the allowed methods are unspecified.

  Returns:
    the allowed methods

### setCacheControl

    public void setCacheControl(String cacheControl)

  Sets the (new) value of the `Cache-Control` header.

  Parameters:
    `cacheControl` - the value of the header

### getCacheControl

    public String getCacheControl()

  Returns the value of the `Cache-Control` header.

  Returns:
    the value of the header

### setContentDispositionFormData

    public void setContentDispositionFormData(String name,
                                              String filename)

  Sets the (new) value of the `Content-Disposition` header for `form-data`.

  Parameters:
    `name` - the control name
    `filename` - the filename, may be `null`

### setContentLength

    public void setContentLength(long contentLength)

  Set the length of the body in bytes, as specified by the `Content-Length` header.

  Parameters:
    `contentLength` - the content length

### getContentLength

    public long getContentLength()

  Return the length of the body in bytes, as specified by the `Content-Length` header.

  Returns -1 when the content-length is unknown.

  Returns:
    the content length

### setContentType

    public void setContentType(MediaType mediaType)

  Set the media type of the body, as specified by the `Content-Type` header.

  Parameters:
    `mediaType` - the media type

### getContentType

    public MediaType getContentType()

  Return the media type of the body, as specified by the `Content-Type` header.

  Returns `null` when the content-type is unknown.

  Returns:
    the content type

### setDate

    public void setDate(long date)

  Sets the date and time at which the message was created, as specified by the `Date` header.

  The date should be specified as the number of milliseconds since January 1, 1970 GMT.

  Parameters:
    `date` - the date

### getDate

    public long getDate()

  Returns the date and time at which the message was created, as specified by the `Date` header.

  The date is returned as the number of milliseconds since January 1, 1970 GMT. Returns -1 when the date is unknown.

  Returns:
    the creation date/time
  Throws:
    `IllegalArgumentException` - if the value can't be converted to a date

### setETag

    public void setETag(String eTag)

  Sets the (new) entity tag of the body, as specified by the `ETag` header.

  Parameters:
    `eTag` - the new entity tag

### getETag

    public String getETag()

  Returns the entity tag of the body, as specified by the `ETag` header.

  Returns:
    the entity tag

### setExpires

    public void setExpires(long expires)

  Sets the date and time at which the message is no longer valid, as specified by the `Expires` header.

  The date should be specified as the number of milliseconds since January 1, 1970 GMT.

  Parameters:
    `expires` - the new expires header value

### getExpires

    public long getExpires()

  Returns the date and time at which the message is no longer valid, as specified by the `Expires` header.

  The date is returned as the number of milliseconds since January 1, 1970 GMT. Returns -1 when the date is unknown.

  Returns:
    the expires value

### setIfModifiedSince

    public void setIfModifiedSince(long ifModifiedSince)

  Sets the (new) value of the `If-Modified-Since` header.

  The date should be specified as the number of milliseconds since January 1, 1970 GMT.

  Parameters:
    `ifModifiedSince` - the new value of the header

### getIfNotModifiedSince

    public long getIfNotModifiedSince()

  Returns the value of the `IfModifiedSince` header.

  The date is returned as the number of milliseconds since January 1, 1970 GMT. Returns -1 when the date is unknown.

  Returns:
    the header value

### setIfNoneMatch

    public void setIfNoneMatch(String ifNoneMatch)

  Sets the (new) value of the `If-None-Match` header.

  Parameters:
    `ifNoneMatch` - the new value of the header

### setIfNoneMatch

    public void setIfNoneMatch(List<String> ifNoneMatchList)

  Sets the (new) values of the `If-None-Match` header.

  Parameters:
    `ifNoneMatchList` - the new value of the header

### getIfNoneMatch

    public List<String> getIfNoneMatch()

  Returns the value of the `If-None-Match` header.

  Returns:
    the header value

### setLastModified

    public void setLastModified(long lastModified)

  Sets the time the resource was last changed, as specified by the `Last-Modified` header.

  The date should be specified as the number of milliseconds since January 1, 1970 GMT.

  Parameters:
    `lastModified` - the last modified date

### getLastModified

    public long getLastModified()

  Returns the time the resource was last changed, as specified by the `Last-Modified` header.

  The date is returned as the number of milliseconds since January 1, 1970 GMT. Returns -1 when the date is unknown.

  Returns:
    the last modified date

### setLocation

    public void setLocation(URI location)

  Set the (new) location of a resource, as specified by the `Location` header.

  Parameters:
    `location` - the location

### getLocation

    public URI getLocation()

  Return the (new) location of a resource, as specified by the `Location` header.

  Returns `null` when the location is unknown.

  Returns:
    the location

### setPragma

    public void setPragma(String pragma)

  Sets the (new) value of the `Pragma` header.

  Parameters:
    `pragma` - the value of the header

### getPragma

    public String getPragma()

  Returns the value of the `Pragma` header.

  Returns:
    the value of the header

### getFirst

    public String getFirst(String headerName)

  Return the first header value for the given header name, if any.

  Specified by:
    `getFirst` in interface `MultiValueMap<String,String>`
  Parameters:
    `headerName` - the header name
  Returns:
    the first header value; or `null`

### add

    public void add(String headerName,
                    String headerValue)

  Add the given, single header value under the given name.

  Specified by:
    `add` in interface `MultiValueMap<String,String>`
  Parameters:
    `headerName` - the header name
    `headerValue` - the header value
  Throws:
    `UnsupportedOperationException` - if adding headers is not supported
  See Also:
    `put(String, List)`, `set(String, String)`

### set

    public void set(String headerName,
                    String headerValue)

  Set the given, single header value under the given name.

  Specified by:
    `set` in interface `MultiValueMap<String,String>`
  Parameters:
    `headerName` - the header name
    `headerValue` - the header value
  Throws:
    `UnsupportedOperationException` - if adding headers is not supported
  See Also:
    `put(String, List)`, `add(String, String)`

### setAll

    public void setAll(Map<String,String> values)

  Description copied from interface: `MultiValueMap`
  Set the given values under.

  Specified by:
    `setAll` in interface `MultiValueMap<String,String>`
  Parameters:
    `values` - the values.

### toSingleValueMap

    public Map<String,String> toSingleValueMap()

  Description copied from interface: `MultiValueMap`
  Returns the first values contained in this `MultiValueMap`.

  Specified by:
    `toSingleValueMap` in interface `MultiValueMap<String,String>`
  Returns:
    a single value representation of this map

### size

    public int size()

  Specified by:
    `size` in interface `Map<String,List<String>>`

### isEmpty

    public boolean isEmpty()

  Specified by:
    `isEmpty` in interface `Map<String,List<String>>`

### containsKey

    public boolean containsKey(Object key)

  Specified by:
    `containsKey` in interface `Map<String,List<String>>`

### containsValue

    public boolean containsValue(Object value)

  Specified by:
    `containsValue` in interface `Map<String,List<String>>`

### get

    public List<String> get(Object key)

  Specified by:
    `get` in interface `Map<String,List<String>>`

### put

    public List<String> put(String key,
                            List<String> value)

  Specified by:
    `put` in interface `Map<String,List<String>>`

### remove

    public List<String> remove(Object key)

  Specified by:
    `remove` in interface `Map<String,List<String>>`

### putAll

    public void putAll(Map<? extends String,? extends List<String>> m)

  Specified by:
    `putAll` in interface `Map<String,List<String>>`

### clear

    public void clear()

  Specified by:
    `clear` in interface `Map<String,List<String>>`

### keySet

    public Set<String> keySet()

  Specified by:
    `keySet` in interface `Map<String,List<String>>`

### values

    public Collection<List<String>> values()

  Specified by:
    `values` in interface `Map<String,List<String>>`

### entrySet

    public Set<Map.Entry<String,List<String>>> entrySet()

  Specified by:
    `entrySet` in interface `Map<String,List<String>>`

### equals

    public boolean equals(Object other)

  Specified by:
    `equals` in interface `Map<String,List<String>>`
  Overrides:
    `equals` in class `Object`

### hashCode

    public int hashCode()

  Specified by:
    `hashCode` in interface `Map<String,List<String>>`
  Overrides:
    `hashCode` in class `Object`

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`