org.springframework.web.socket

## Class WebSocketHttpHeaders

- java.lang.Object
- - org.springframework.http.HttpHeaders
  - - org.springframework.web.socket.WebSocketHttpHeaders

All Implemented Interfaces:
  Serializable, Map<String,List<String>>, org.springframework.util.MultiValueMap<String,String>

    public class WebSocketHttpHeaders
    extends org.springframework.http.HttpHeaders

An `HttpHeaders` variant that adds support for the HTTP headers defined by the WebSocket specification RFC 6455.

Since:
  4.0
Author:
  Rossen Stoyanchev
See Also:
  Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from interface java.util.Map

`Map.Entry<K,V>`

### Field Summary

Fields
`static String` `SEC_WEBSOCKET_ACCEPT`
`static String` `SEC_WEBSOCKET_EXTENSIONS`
`static String` `SEC_WEBSOCKET_KEY`
`static String` `SEC_WEBSOCKET_PROTOCOL`
`static String` `SEC_WEBSOCKET_VERSION`

### Fields inherited from class org.springframework.http.HttpHeaders

`ACCEPT, ACCEPT_CHARSET, ACCEPT_ENCODING, ACCEPT_LANGUAGE, ACCEPT_RANGES, ACCESS_CONTROL_ALLOW_CREDENTIALS, ACCESS_CONTROL_ALLOW_HEADERS, ACCESS_CONTROL_ALLOW_METHODS, ACCESS_CONTROL_ALLOW_ORIGIN, ACCESS_CONTROL_EXPOSE_HEADERS, ACCESS_CONTROL_MAX_AGE, ACCESS_CONTROL_REQUEST_HEADERS, ACCESS_CONTROL_REQUEST_METHOD, AGE, ALLOW, AUTHORIZATION, CACHE_CONTROL, CONNECTION, CONTENT_DISPOSITION, CONTENT_ENCODING, CONTENT_LANGUAGE, CONTENT_LENGTH, CONTENT_LOCATION, CONTENT_RANGE, CONTENT_TYPE, COOKIE, DATE, EMPTY, ETAG, EXPECT, EXPIRES, FROM, HOST, IF_MATCH, IF_MODIFIED_SINCE, IF_NONE_MATCH, IF_RANGE, IF_UNMODIFIED_SINCE, LAST_MODIFIED, LINK, LOCATION, MAX_FORWARDS, ORIGIN, PRAGMA, PROXY_AUTHENTICATE, PROXY_AUTHORIZATION, RANGE, REFERER, RETRY_AFTER, SERVER, SET_COOKIE, SET_COOKIE2, TE, TRAILER, TRANSFER_ENCODING, UPGRADE, USER_AGENT, VARY, VIA, WARNING, WWW_AUTHENTICATE`

### Constructor Summary

Constructors
Constructor and Description
`WebSocketHttpHeaders()` Create a new instance.
`WebSocketHttpHeaders(org.springframework.http.HttpHeaders headers)` Create an instance that wraps the given pre-existing HttpHeaders and also propagate all changes to it.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
`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)`
`String` `getFirst(String headerName)` Return the first header value for the given header name, if any.
`String` `getSecWebSocketAccept()` Returns the value of the `Sec-WebSocket-Accept` header.
`List<WebSocketExtension>` `getSecWebSocketExtensions()` Returns the value of the `Sec-WebSocket-Extensions` header.
`String` `getSecWebSocketKey()` Returns the value of the `Sec-WebSocket-Key` header.
`List<String>` `getSecWebSocketProtocol()` Returns the value of the `Sec-WebSocket-Key` header.
`String` `getSecWebSocketVersion()` Returns the value of the `Sec-WebSocket-Version` 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 WebSocketHttpHeaders` `readOnlyWebSocketHttpHeaders(WebSocketHttpHeaders headers)` Deprecated. as of 5.1.16, in favor of calling `WebSocketHttpHeaders(HttpHeaders)` with a read-only wrapper from `HttpHeaders.readOnlyHttpHeaders(HttpHeaders)`
`List<String>` `remove(Object key)`
`void` `set(String headerName, String headerValue)` Set the given, single header value under the given name.
`void` `setAll(Map<String,String> values)`
`void` `setSecWebSocketAccept(String secWebSocketAccept)` Sets the (new) value of the `Sec-WebSocket-Accept` header.
`void` `setSecWebSocketExtensions(List<WebSocketExtension> extensions)` Sets the (new) value(s) of the `Sec-WebSocket-Extensions` header.
`void` `setSecWebSocketKey(String secWebSocketKey)` Sets the (new) value of the `Sec-WebSocket-Key` header.
`void` `setSecWebSocketProtocol(List<String> secWebSocketProtocols)` Sets the (new) value of the `Sec-WebSocket-Protocol` header.
`void` `setSecWebSocketProtocol(String secWebSocketProtocol)` Sets the (new) value of the `Sec-WebSocket-Protocol` header.
`void` `setSecWebSocketVersion(String secWebSocketVersion)` Sets the (new) value of the `Sec-WebSocket-Version` header.
`int` `size()`
`Map<String,String>` `toSingleValueMap()`
`String` `toString()`
`Collection<List<String>>` `values()`

### Methods inherited from class org.springframework.http.HttpHeaders

`addAll, addAll, clearContentHeaders, encodeBasicAuth, formatHeaders, getAccept, getAcceptCharset, getAcceptLanguage, getAcceptLanguageAsLocales, getAccessControlAllowCredentials, getAccessControlAllowHeaders, getAccessControlAllowMethods, getAccessControlAllowOrigin, getAccessControlExposeHeaders, getAccessControlMaxAge, getAccessControlRequestHeaders, getAccessControlRequestMethod, getAllow, getCacheControl, getConnection, getContentDisposition, getContentLanguage, getContentLength, getContentType, getDate, getETag, getETagValuesAsList, getExpires, getFieldValues, getFirstDate, getFirstZonedDateTime, getHost, getIfMatch, getIfModifiedSince, getIfNoneMatch, getIfUnmodifiedSince, getLastModified, getLocation, getOrEmpty, getOrigin, getPragma, getRange, getUpgrade, getValuesAsList, getVary, readOnlyHttpHeaders, setAccept, setAcceptCharset, setAcceptLanguage, setAcceptLanguageAsLocales, setAccessControlAllowCredentials, setAccessControlAllowHeaders, setAccessControlAllowMethods, setAccessControlAllowOrigin, setAccessControlExposeHeaders, setAccessControlMaxAge, setAccessControlMaxAge, setAccessControlRequestHeaders, setAccessControlRequestMethod, setAllow, setBasicAuth, setBasicAuth, setBasicAuth, setBearerAuth, setCacheControl, setCacheControl, setConnection, setConnection, setContentDisposition, setContentDispositionFormData, setContentLanguage, setContentLength, setContentType, setDate, setDate, setDate, setDate, setETag, setExpires, setExpires, setExpires, setHost, setIfMatch, setIfMatch, setIfModifiedSince, setIfModifiedSince, setIfModifiedSince, setIfNoneMatch, setIfNoneMatch, setIfUnmodifiedSince, setIfUnmodifiedSince, setIfUnmodifiedSince, setInstant, setLastModified, setLastModified, setLastModified, setLocation, setOrigin, setPragma, setRange, setUpgrade, setVary, setZonedDateTime, toCommaDelimitedString, writableHttpHeaders`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.springframework.util.MultiValueMap

`addIfAbsent`

### Methods inherited from interface java.util.Map

`compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll`

### Field Detail

#### SEC_WEBSOCKET_ACCEPT

    public static final String SEC_WEBSOCKET_ACCEPT

See Also:
  Constant Field Values

#### SEC_WEBSOCKET_EXTENSIONS

    public static final String SEC_WEBSOCKET_EXTENSIONS

See Also:
  Constant Field Values

#### SEC_WEBSOCKET_KEY

    public static final String SEC_WEBSOCKET_KEY

See Also:
  Constant Field Values

#### SEC_WEBSOCKET_PROTOCOL

    public static final String SEC_WEBSOCKET_PROTOCOL

See Also:
  Constant Field Values

#### SEC_WEBSOCKET_VERSION

    public static final String SEC_WEBSOCKET_VERSION

See Also:
  Constant Field Values

### Constructor Detail

#### WebSocketHttpHeaders

    public WebSocketHttpHeaders()

Create a new instance.

#### WebSocketHttpHeaders

    public WebSocketHttpHeaders(org.springframework.http.HttpHeaders headers)

Create an instance that wraps the given pre-existing HttpHeaders and also propagate all changes to it.

Parameters:
  `headers` - the HTTP headers to wrap

### Method Detail

#### readOnlyWebSocketHttpHeaders

    @Deprecated
    public static WebSocketHttpHeaders readOnlyWebSocketHttpHeaders(WebSocketHttpHeaders headers)

Deprecated. as of 5.1.16, in favor of calling `WebSocketHttpHeaders(HttpHeaders)` with a read-only wrapper from `HttpHeaders.readOnlyHttpHeaders(HttpHeaders)`
Returns `WebSocketHttpHeaders` object that can only be read, not written to.

#### setSecWebSocketAccept

    public void setSecWebSocketAccept(@Nullable
                                      String secWebSocketAccept)

Sets the (new) value of the `Sec-WebSocket-Accept` header.

Parameters:
  `secWebSocketAccept` - the value of the header

#### getSecWebSocketAccept

    @Nullable
    public String getSecWebSocketAccept()

Returns the value of the `Sec-WebSocket-Accept` header.

Returns:
  the value of the header

#### getSecWebSocketExtensions

    public List<WebSocketExtension> getSecWebSocketExtensions()

Returns the value of the `Sec-WebSocket-Extensions` header.

Returns:
  the value of the header

#### setSecWebSocketExtensions

    public void setSecWebSocketExtensions(List<WebSocketExtension> extensions)

Sets the (new) value(s) of the `Sec-WebSocket-Extensions` header.

Parameters:
  `extensions` - the values for the header

#### setSecWebSocketKey

    public void setSecWebSocketKey(@Nullable
                                   String secWebSocketKey)

Sets the (new) value of the `Sec-WebSocket-Key` header.

Parameters:
  `secWebSocketKey` - the value of the header

#### getSecWebSocketKey

    @Nullable
    public String getSecWebSocketKey()

Returns the value of the `Sec-WebSocket-Key` header.

Returns:
  the value of the header

#### setSecWebSocketProtocol

    public void setSecWebSocketProtocol(String secWebSocketProtocol)

Sets the (new) value of the `Sec-WebSocket-Protocol` header.

Parameters:
  `secWebSocketProtocol` - the value of the header

#### setSecWebSocketProtocol

    public void setSecWebSocketProtocol(List<String> secWebSocketProtocols)

Sets the (new) value of the `Sec-WebSocket-Protocol` header.

Parameters:
  `secWebSocketProtocols` - the value of the header

#### getSecWebSocketProtocol

    public List<String> getSecWebSocketProtocol()

Returns the value of the `Sec-WebSocket-Key` header.

Returns:
  the value of the header

#### setSecWebSocketVersion

    public void setSecWebSocketVersion(@Nullable
                                       String secWebSocketVersion)

Sets the (new) value of the `Sec-WebSocket-Version` header.

Parameters:
  `secWebSocketVersion` - the value of the header

#### getSecWebSocketVersion

    @Nullable
    public String getSecWebSocketVersion()

Returns the value of the `Sec-WebSocket-Version` header.

Returns:
  the value of the header

#### getFirst

    @Nullable
    public String getFirst(String headerName)

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

Specified by:
  `getFirst` in interface `org.springframework.util.MultiValueMap<String,String>`
Overrides:
  `getFirst` in class `org.springframework.http.HttpHeaders`
Parameters:
  `headerName` - the header name
Returns:
  the first header value; or `null`

#### add

    public void add(String headerName,
                    @Nullable
                    String headerValue)

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

Specified by:
  `add` in interface `org.springframework.util.MultiValueMap<String,String>`
Overrides:
  `add` in class `org.springframework.http.HttpHeaders`
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,
                    @Nullable
                    String headerValue)

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

Specified by:
  `set` in interface `org.springframework.util.MultiValueMap<String,String>`
Overrides:
  `set` in class `org.springframework.http.HttpHeaders`
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)

Specified by:
  `setAll` in interface `org.springframework.util.MultiValueMap<String,String>`
Overrides:
  `setAll` in class `org.springframework.http.HttpHeaders`

#### toSingleValueMap

    public Map<String,String> toSingleValueMap()

Specified by:
  `toSingleValueMap` in interface `org.springframework.util.MultiValueMap<String,String>`
Overrides:
  `toSingleValueMap` in class `org.springframework.http.HttpHeaders`

#### size

    public int size()

Specified by:
  `size` in interface `Map<String,List<String>>`
Overrides:
  `size` in class `org.springframework.http.HttpHeaders`

#### isEmpty

    public boolean isEmpty()

Specified by:
  `isEmpty` in interface `Map<String,List<String>>`
Overrides:
  `isEmpty` in class `org.springframework.http.HttpHeaders`

#### containsKey

    public boolean containsKey(Object key)

Specified by:
  `containsKey` in interface `Map<String,List<String>>`
Overrides:
  `containsKey` in class `org.springframework.http.HttpHeaders`

#### containsValue

    public boolean containsValue(Object value)

Specified by:
  `containsValue` in interface `Map<String,List<String>>`
Overrides:
  `containsValue` in class `org.springframework.http.HttpHeaders`

#### get

    public List<String> get(Object key)

Specified by:
  `get` in interface `Map<String,List<String>>`
Overrides:
  `get` in class `org.springframework.http.HttpHeaders`

#### put

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

Specified by:
  `put` in interface `Map<String,List<String>>`
Overrides:
  `put` in class `org.springframework.http.HttpHeaders`

#### remove

    public List<String> remove(Object key)

Specified by:
  `remove` in interface `Map<String,List<String>>`
Overrides:
  `remove` in class `org.springframework.http.HttpHeaders`

#### putAll

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

Specified by:
  `putAll` in interface `Map<String,List<String>>`
Overrides:
  `putAll` in class `org.springframework.http.HttpHeaders`

#### clear

    public void clear()

Specified by:
  `clear` in interface `Map<String,List<String>>`
Overrides:
  `clear` in class `org.springframework.http.HttpHeaders`

#### keySet

    public Set<String> keySet()

Specified by:
  `keySet` in interface `Map<String,List<String>>`
Overrides:
  `keySet` in class `org.springframework.http.HttpHeaders`

#### values

    public Collection<List<String>> values()

Specified by:
  `values` in interface `Map<String,List<String>>`
Overrides:
  `values` in class `org.springframework.http.HttpHeaders`

#### entrySet

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

Specified by:
  `entrySet` in interface `Map<String,List<String>>`
Overrides:
  `entrySet` in class `org.springframework.http.HttpHeaders`

#### equals

    public boolean equals(@Nullable
                          Object other)

Specified by:
  `equals` in interface `Map<String,List<String>>`
Overrides:
  `equals` in class `org.springframework.http.HttpHeaders`

#### hashCode

    public int hashCode()

Specified by:
  `hashCode` in interface `Map<String,List<String>>`
Overrides:
  `hashCode` in class `org.springframework.http.HttpHeaders`

#### toString

    public String toString()

Overrides:
  `toString` in class `org.springframework.http.HttpHeaders`