public abstract class AbstractServerHttpRequest extends java.lang.Object implements ServerHttpRequest
ServerHttpRequest
implementations.ServerHttpRequest.Builder
Constructor and Description |
---|
AbstractServerHttpRequest(java.net.URI uri,
java.lang.String contextPath,
HttpHeaders headers)
Constructor with the URI and headers for the request.
|
Modifier and Type | Method and Description |
---|---|
MultiValueMap<java.lang.String,HttpCookie> |
getCookies()
Return a read-only map of cookies sent by the client.
|
HttpHeaders |
getHeaders()
Return the headers of this message.
|
java.lang.String |
getId()
Return an id that represents the underlying connection, if available,
or the request for the purpose of correlating log messages.
|
abstract <T> T |
getNativeRequest()
Return the underlying server response.
|
RequestPath |
getPath()
Returns a structured representation of the request path including the
context path + path within application portions, path segments with
encoded and decoded values, and path parameters.
|
MultiValueMap<java.lang.String,java.lang.String> |
getQueryParams()
Return a read-only map with parsed and decoded query parameter values.
|
SslInfo |
getSslInfo()
Return the SSL session information if the request has been transmitted
over a secure protocol including SSL certificates, if available.
|
java.net.URI |
getURI()
Return the URI of the request (including a query string if any,
but only if it is well-formed for a URI representation).
|
protected abstract MultiValueMap<java.lang.String,HttpCookie> |
initCookies()
Obtain the cookies from the underlying "native" request and adapt those to
an
HttpCookie map. |
protected java.lang.String |
initId()
Obtain the request id to use, or
null in which case the Object
identity of this request instance is used. |
protected MultiValueMap<java.lang.String,java.lang.String> |
initQueryParams()
A method for parsing of the query into name-value pairs.
|
protected abstract SslInfo |
initSslInfo()
Obtain SSL session information from the underlying "native" request.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getRemoteAddress, mutate
getMethod, getMethodValue
getBody
protected final Log logger
public AbstractServerHttpRequest(java.net.URI uri, @Nullable java.lang.String contextPath, HttpHeaders headers)
uri
- the URI for the requestcontextPath
- the context path for the requestheaders
- the headers for the requestpublic java.lang.String getId()
ServerHttpRequest
getId
in interface ServerHttpRequest
ServerWebExchange.getLogPrefix()
@Nullable protected java.lang.String initId()
null
in which case the Object
identity of this request instance is used.public java.net.URI getURI()
HttpRequest
getURI
in interface HttpRequest
null
)public RequestPath getPath()
ServerHttpRequest
getPath
in interface ServerHttpRequest
public HttpHeaders getHeaders()
HttpMessage
getHeaders
in interface HttpMessage
null
)public MultiValueMap<java.lang.String,java.lang.String> getQueryParams()
ServerHttpRequest
getQueryParams
in interface ServerHttpRequest
protected MultiValueMap<java.lang.String,java.lang.String> initQueryParams()
Note that this method is invoked lazily on first access to
getQueryParams()
. The invocation is not synchronized but the
parsing is thread-safe nevertheless.
public MultiValueMap<java.lang.String,HttpCookie> getCookies()
ServerHttpRequest
getCookies
in interface ServerHttpRequest
protected abstract MultiValueMap<java.lang.String,HttpCookie> initCookies()
HttpCookie
map. The return value is turned into an immutable
map and cached.
Note that this method is invoked lazily on access to
getCookies()
. Sub-classes should synchronize cookie
initialization if the underlying "native" request does not provide
thread-safe access to cookie data.
@Nullable public SslInfo getSslInfo()
ServerHttpRequest
getSslInfo
in interface ServerHttpRequest
null
if none available@Nullable protected abstract SslInfo initSslInfo()
null
if none availablepublic abstract <T> T getNativeRequest()
Note: This is exposed mainly for internal framework use such as WebSocket upgrades in the spring-webflux module.