Top Description Fields Methods
io.vertx.core.http

public Interface HttpServerRequest

extends ReadStream<Buffer>
Known Direct Implementers
io.vertx.core.http.impl.HttpServerRequestInternal
Annotations
@VertxGen
Imports
io.netty.handler.codec.DecoderResult, io.netty.handler.codec.http.HttpResponseStatus, .TooLongHttpHeaderException, .TooLongHttpLineException, io.vertx.codegen.annotations.*, io.vertx.core.AsyncResult, .Future, .Handler, .MultiMap, io.vertx.core.buffer.Buffer, io.vertx.core.net.HostAndPort, .NetSocket, .SocketAddress, io.vertx.core.streams.ReadStream, javax.net.ssl.SSLPeerUnverifiedException, .SSLSession, javax.security.cert.X509Certificate, java.util.*, java.util.stream.Collectors

Represents a server-side HTTP request.

Instances are created for each request and passed to the user via a handler.

Each instance of this class is associated with a corresponding HttpServerResponse instance via response.

It implements io.vertx.core.streams.ReadStream so it can be used with io.vertx.core.streams.Pipe to pipe data with flow control.

Author
Tim Fox

Field Summary

Modifier and TypeField and Description
public static final Handler<HttpServerRequest>
DEFAULT_INVALID_REQUEST_HANDLER

The default invalid request handler, it uses the decoderResult() cause and the request information to determine the status code of the response to be sent.

Method Summary

Modifier and TypeMethod and Description
public String

Returns:

the absolute URI corresponding to the HTTP request
absoluteURI
()

public @Nullable HostAndPort

Returns:

the request authority. For HTTP/2 the :authority pseudo header is returned, for HTTP/1.x the Host header is returned or null when no such header is present. When the authority string does not carry a port, the HostAndPort#port() returns -1 to indicate the scheme port is prevalent.
authority
()

public default HttpServerRequest
body(Handler<AsyncResult<Buffer>> handler)

Same as body() but with an handler called when the operation completes

public Future<Buffer>

Returns:

a future completed with the body result
body
()

Convenience method for receiving the entire request body in one piece.

public default HttpServerRequest
bodyHandler(@Nullable Handler<Buffer>
This handler will be called after all the body has been received
bodyHandler
)

Convenience method for receiving the entire request body in one piece.

public long

Returns:

the total number of bytes read for the body of the request.
bytesRead
()

public HttpConnection

Returns:

the HttpConnection associated with this request
connection
()

public default int

Returns:

the number of cookies in the cookie jar.
cookieCount
()

public default Map<String, Cookie>

Returns:

a map of all the cookies.
cookieMap
()
Deprecated the implementation made a wrong assumption that cookies could be identified only by their name.

public Set<Cookie>

Returns:

the matching cookies or empty set
cookies
(String
the name to be matches
name
)

Returns a read only set of parsed cookies that match the given name, or an empty set.

public Set<Cookie>

Returns:

a set with all cookies in the cookie jar.
cookies
()

Returns a modifiable set of parsed cookies from the COOKIE header.

public HttpServerRequest

Returns:

a reference to this, so the API can be used fluently
customFrameHandler
(Handler<HttpFrame> handler)

Set a custom frame handler.

public DecoderResult

Returns:

Netty's decoder result useful for handling invalid requests with HttpServer#invalidRequestHandler
decoderResult
()

public default void
end(Handler<AsyncResult<Void>> handler)

Same as end() but with an handler called when the operation completes

public Future<Void>

Returns:

a future completed with the body result
end
()

Returns a future signaling when the request has been fully received successfully or failed.

public HttpServerRequest
endHandler(Handler<Void> endHandler)

public HttpServerRequest
public HttpServerRequest
fetch(long amount)

Redeclares io.vertx.core.streams.ReadStream.fetch.

Fetch the specified amount of elements.

public MultiMap

Returns:

the form attributes
formAttributes
()

Returns a map of all form attributes in the request.

public @Nullable Cookie

Returns:

the cookie or null if not found.
getCookie
(String
the cookie name
name
)

Get the cookie with the specified name.

public @Nullable Cookie

Returns:

the cookie or null if not found.
getCookie
(String
the cookie name
name
,
String
the cookie domain
domain
,
String
the cookie path
path
)

Get the cookie with the specified <name, domain, path>.

public @Nullable String

Returns:

the attribute value
getFormAttribute
(String
the attribute name
attributeName
)

Return the first form attribute value with the specified name

public default @Nullable String

Returns:

the header value
getHeader
(String
the header name
headerName
)

Return the first header value with the specified name

public default String

Returns:

the header value
getHeader
(CharSequence
the header name
headerName
)

Return the first header value with the specified name

public default @Nullable String

Returns:

the param value
getParam
(String
the param name
paramName
)

Return the first param value with the specified name

public default String

Returns:

the param value or defaultValue when not present
getParam
(String
the param name
paramName
,
String
the default value, must be non-null
defaultValue
)

Return the first param value with the specified name or defaultValue when the query param is not present

public String

Returns:

the charset used for decoding query parameters
getParamsCharset
()

public HttpServerRequest
public MultiMap

Returns:

the headers in the request.
headers
()

public @Nullable String

Returns:

the request host. For HTTP2 it returns the :authority pseudo header otherwise it returns the Host header
host
()
Deprecated instead use authority()

public boolean

Returns:

true if ended
isEnded
()

Has the request ended?

public boolean

Returns:

true if we are expecting a multi-part body for this request. See setExpectMultipart.
isExpectMultipart
()

public default boolean

Returns:

true if this io.vertx.core.net.NetSocket is encrypted via SSL/TLS
isSSL
()

public default SocketAddress

Returns:

the local address for this connection, possibly null (e.g a server bound on a domain socket) If useProxyProtocol is set to true, the address returned will be of the proxy.
localAddress
()

public HttpMethod

Returns:

the HTTP method for the request.
method
()

public default MultiMap

Returns:

the query parameters in the request
params
()

public MultiMap

Returns:

the query parameters in the request
params
(boolean
whether semicolon is treated as a normal character or a query parameter separator
semicolonIsNormalChar
)

public @Nullable String

Returns:

The path part of the uri. For example /somepath/somemorepath/someresource.foo
path
()

public HttpServerRequest
pause()

Redeclares io.vertx.core.streams.ReadStream.pause.

Pause the ReadStream, it sets the buffer in fetch mode and clears the actual demand.

public X509Certificate[]

Returns:

an ordered array of the peer certificates. Returns null if connection is not SSL.
peerCertificateChain
()
References Deprecated X509Certificate is deprecated or references (maybe indirectly) at least one deprecated element.

Note

Java SE 5+ recommends to use javax.net.ssl.SSLSession#getPeerCertificates() instead of of javax.net.ssl.SSLSession#getPeerCertificateChain() which this method is based on.

public @Nullable String

Returns:

the query part of the uri. For example someparam=32&someotherparam=x
query
()

public default SocketAddress

Returns:

the remote address for this connection, possibly null (e.g a server bound on a domain socket). If useProxyProtocol is set to true, the address returned will be of the actual connecting client.
remoteAddress
()

public HttpServerResponse

Returns:

the response. Each instance of this class has an HttpServerResponse instance attached to it. This is used to send the response back to the client.
response
()

public HttpServerRequest
resume()

Redeclares io.vertx.core.streams.ReadStream.resume.

Resume reading, and sets the buffer in flowing mode.

public default HttpServerRequest
routed(String
The route this request has been routed to.
route
)

Marks this request as being routed to the given route.

public @Nullable String

Returns:

the scheme of the request
scheme
()

public HttpServerRequest

Returns:

a reference to this, so the API can be used fluently
setExpectMultipart
(boolean
true - if you are expecting a multi-part body
expect
)

Call this with true if you are expecting a multi-part body to be submitted in the request.

public HttpServerRequest

Returns:

a reference to this, so the API can be used fluently
setParamsCharset
(String
the charset to use for decoding query params
charset
)

Override the charset to use for decoding the query parameter map, when none is set, UTF8 is used.

public default SSLSession

Returns:

SSLSession associated with the underlying socket. Returns null if connection is not SSL.
sslSession
()

public default int

Returns:

the id of the stream of this request, -1 when it is not yet determined, i.e the request has not been yet sent or it is not supported HTTP/1.x
streamId
()

public default StreamPriority

Returns:

the priority of the associated HTTP/2 stream for HTTP/2 otherwise null
streamPriority
()

public HttpServerRequest
streamPriorityHandler(Handler<StreamPriority>
the handler to be called when stream priority changes
handler
)

Set an handler for stream priority changes

This is not implemented for HTTP/1.x.

public default void
toNetSocket(Handler<AsyncResult<NetSocket>>
the completion handler
handler
)

Establish a TCP tunnel with the client.

This must be called only for CONNECT HTTP method or for HTTP connection upgrade, before any response is sent.

Calling this sends a 200 response for a CONNECT or a 101 for a connection upgrade wit no content-length header set and then provides the NetSocket for handling the created tunnel. Any HTTP header set on the response before calling this method will be sent.

server.requestHandler(req -> {
  if (req.method() == HttpMethod.CONNECT) {
    // Send a 200 response to accept the connect
    NetSocket socket = req.netSocket();
    socket.handler(buff -> {
      socket.write(buff);
    });
  }
  ...
});
public Future<NetSocket>
toNetSocket()

Like toNetSocket(Handler) but returns a Future of the asynchronous result

public default void
toWebSocket(Handler<AsyncResult<ServerWebSocket>>
the completion handler
handler
)

Upgrade the connection of the current request to a WebSocket.

public Future<ServerWebSocket>
toWebSocket()

Like toWebSocket(Handler) but returns a Future of the asynchronous result

public HttpServerRequest

Returns:

a reference to this, so the API can be used fluently
uploadHandler
(@Nullable Handler<HttpServerFileUpload> uploadHandler)

Set an upload handler.

public String

Returns:

the URI of the request. This is usually a relative URI
uri
()

public HttpVersion

Returns:

the HTTP version of the request
version
()

Inherited from io.vertx.core.streams.ReadStream:
collectendHandlerexceptionHandlerhandlerpipepipeTopipeTo

Field Detail

DEFAULT_INVALID_REQUEST_HANDLERback to summary
public static final Handler<HttpServerRequest> DEFAULT_INVALID_REQUEST_HANDLER

The default invalid request handler, it uses the decoderResult() cause and the request information to determine the status code of the response to be sent.

  • When the cause is an instance of io.netty.handler.codec.TooLongFrameException and the error message starts with An HTTP line is larger than the REQUEST_URI_TOO_LONG status is sent
  • Otherwise when the cause is an instance of io.netty.handler.codec.TooLongFrameException and the error message starts with HTTP header is larger than the REQUEST_HEADER_FIELDS_TOO_LARGE status is sent
  • Otherwise then BAD_REQUEST status is sent
Annotations
@GenIgnore

Method Detail

absoluteURIback to summary
public String absoluteURI()
Returns:String

the absolute URI corresponding to the HTTP request

authorityback to summary
public @Nullable HostAndPort authority()
Returns:@Nullable HostAndPort

the request authority. For HTTP/2 the :authority pseudo header is returned, for HTTP/1.x the Host header is returned or null when no such header is present. When the authority string does not carry a port, the HostAndPort#port() returns -1 to indicate the scheme port is prevalent.

bodyback to summary
public default HttpServerRequest body(Handler<AsyncResult<Buffer>> handler)

Same as body() but with an handler called when the operation completes

bodyback to summary
public Future<Buffer> body()

Convenience method for receiving the entire request body in one piece.

This saves you having to manually set a dataHandler and an endHandler and append the chunks of the body until the whole body received. Don't use this if your request body is large - you could potentially run out of RAM.

Returns:Future<Buffer>

a future completed with the body result

bodyHandlerback to summary
public default HttpServerRequest bodyHandler(@Nullable Handler<Buffer> bodyHandler)

Convenience method for receiving the entire request body in one piece.

This saves the user having to manually setting a data and end handler and append the chunks of the body until the whole body received. Don't use this if your request body is large - you could potentially run out of RAM.

Parameters
bodyHandler:@Nullable Handler<Buffer>

This handler will be called after all the body has been received

Annotations
@Fluent
bytesReadback to summary
public long bytesRead()
Returns:long

the total number of bytes read for the body of the request.

connectionback to summary
public HttpConnection connection()
Returns:HttpConnection

the HttpConnection associated with this request

Annotations
@CacheReturn
cookieCountback to summary
public default int cookieCount()
Returns:int

the number of cookies in the cookie jar.

cookieMapback to summary
public default Map<String, Cookie> cookieMap()

Deprecated

the implementation made a wrong assumption that cookies could be identified only by their name. The RFC states that the tuple of <name, domain, path> is the unique identifier. When more than one cookie has the same name, the map will hold that lost one to be parsed and any previously parsed value will be silently overwritten.

Returns:Map<String, Cookie>

a map of all the cookies.

Annotations
@Deprecated
cookiesback to summary
public Set<Cookie> cookies(String name)

Returns a read only set of parsed cookies that match the given name, or an empty set. Several cookies may share the same name but have different keys. A cookie is unique by its <name, domain, path> tuple. The set entries are references to the request original set. This means that performing property changes in the cookie objects will affect the original object too.

Note

the returned Set is read-only. This means any attempt to modify (add or remove to the set), will throw UnsupportedOperationException.

Parameters
name:String

the name to be matches

Returns:Set<Cookie>

the matching cookies or empty set

cookiesback to summary
public Set<Cookie> cookies()

Returns a modifiable set of parsed cookies from the COOKIE header. Several cookies may share the same name but have different keys. A cookie is unique by its <name, domain, path> tuple. Request cookies are directly linked to response cookies. Any modification to a cookie object in the returned set will mark the cookie to be included in the HTTP response. Removing a cookie from the set, will also mean that it will be removed from the response, regardless if it was modified or not.

Returns:Set<Cookie>

a set with all cookies in the cookie jar.

customFrameHandlerback to summary
public HttpServerRequest customFrameHandler(Handler<HttpFrame> handler)

Set a custom frame handler. The handler will get notified when the http stream receives an custom HTTP/2 frame. HTTP/2 permits extension of the protocol.

Returns:HttpServerRequest

a reference to this, so the API can be used fluently

Annotations
@Fluent
decoderResultback to summary
public DecoderResult decoderResult()
Returns:DecoderResult

Netty's decoder result useful for handling invalid requests with HttpServer#invalidRequestHandler

Annotations
@GenIgnore
endback to summary
public default void end(Handler<AsyncResult<Void>> handler)

Same as end() but with an handler called when the operation completes

endback to summary
public Future<Void> end()

Returns a future signaling when the request has been fully received successfully or failed.

Returns:Future<Void>

a future completed with the body result

endHandlerback to summary
public HttpServerRequest endHandler(Handler<Void> endHandler)
Annotations
@Override
exceptionHandlerback to summary
public HttpServerRequest exceptionHandler(Handler<Throwable> handler)
Annotations
@Override
fetchback to summary
public HttpServerRequest fetch(long amount)

Redeclares io.vertx.core.streams.ReadStream.fetch.

Doc from io.vertx.core.streams.ReadStream.fetch.

Fetch the specified amount of elements. If the ReadStream has been paused, reading will recommence with the specified amount of items, otherwise the specified amount will be added to the current stream demand.

Returns:HttpServerRequest

a reference to this, so the API can be used fluently

Annotations
@Override
formAttributesback to summary
public MultiMap formAttributes()

Returns a map of all form attributes in the request.

Be aware that the attributes will only be available after the whole body has been received, i.e. after the request end handler has been called.

setExpectMultipart(boolean) must be called first before trying to get the form attributes.

Returns:MultiMap

the form attributes

Annotations
@CacheReturn
getCookieback to summary
public @Nullable Cookie getCookie(String name)

Get the cookie with the specified name.

Note

this will return just the 1st Cookie that matches the given name, to get all cookies for this name see: cookies(String)

Parameters
name:String

the cookie name

Returns:@Nullable Cookie

the cookie or null if not found.

getCookieback to summary
public @Nullable Cookie getCookie(String name, String domain, String path)

Get the cookie with the specified <name, domain, path>.

Parameters
name:String

the cookie name

domain:String

the cookie domain

path:String

the cookie path

Returns:@Nullable Cookie

the cookie or null if not found.

getFormAttributeback to summary
public @Nullable String getFormAttribute(String attributeName)

Return the first form attribute value with the specified name

Parameters
attributeName:String

the attribute name

Returns:@Nullable String

the attribute value

getHeaderback to summary
public default @Nullable String getHeader(String headerName)

Return the first header value with the specified name

Parameters
headerName:String

the header name

Returns:@Nullable String

the header value

getHeaderback to summary
public default String getHeader(CharSequence headerName)

Return the first header value with the specified name

Parameters
headerName:CharSequence

the header name

Returns:String

the header value

Annotations
@GenIgnore:permitted-type
getParamback to summary
public default @Nullable String getParam(String paramName)

Return the first param value with the specified name

Parameters
paramName:String

the param name

Returns:@Nullable String

the param value

getParamback to summary
public default String getParam(String paramName, String defaultValue)

Return the first param value with the specified name or defaultValue when the query param is not present

Parameters
paramName:String

the param name

defaultValue:String

the default value, must be non-null

Returns:String

the param value or defaultValue when not present

getParamsCharsetback to summary
public String getParamsCharset()
Returns:String

the charset used for decoding query parameters

handlerback to summary
public HttpServerRequest handler(Handler<Buffer> handler)
Annotations
@Override
headersback to summary
public MultiMap headers()
Returns:MultiMap

the headers in the request.

Annotations
@CacheReturn
hostback to summary
public @Nullable String host()

Deprecated

instead use authority()

Returns:@Nullable String

the request host. For HTTP2 it returns the :authority pseudo header otherwise it returns the Host header

Annotations
@Deprecated
isEndedback to summary
public boolean isEnded()

Has the request ended? I.e. has the entire request, including the body been read?

Returns:boolean

true if ended

isExpectMultipartback to summary
public boolean isExpectMultipart()
Returns:boolean

true if we are expecting a multi-part body for this request. See setExpectMultipart.

isSSLback to summary
public default boolean isSSL()
Returns:boolean

true if this io.vertx.core.net.NetSocket is encrypted via SSL/TLS

localAddressback to summary
public default SocketAddress localAddress()
Returns:SocketAddress

the local address for this connection, possibly null (e.g a server bound on a domain socket) If useProxyProtocol is set to true, the address returned will be of the proxy.

Annotations
@CacheReturn
methodback to summary
public HttpMethod method()
Returns:HttpMethod

the HTTP method for the request.

paramsback to summary
public default MultiMap params()
Returns:MultiMap

the query parameters in the request

Annotations
@CacheReturn
paramsback to summary
public MultiMap params(boolean semicolonIsNormalChar)
Parameters
semicolonIsNormalChar:boolean

whether semicolon is treated as a normal character or a query parameter separator

Returns:MultiMap

the query parameters in the request

pathback to summary
public @Nullable String path()
Returns:@Nullable String

The path part of the uri. For example /somepath/somemorepath/someresource.foo

pauseback to summary
public HttpServerRequest pause()

Redeclares io.vertx.core.streams.ReadStream.pause.

Doc from io.vertx.core.streams.ReadStream.pause.

Pause the ReadStream, it sets the buffer in fetch mode and clears the actual demand.

While it's paused, no data will be sent to the data handler.

Returns:HttpServerRequest

a reference to this, so the API can be used fluently

Annotations
@Override
peerCertificateChainback to summary
public X509Certificate[] peerCertificateChain() throws SSLPeerUnverifiedException

References Deprecated

X509Certificate is deprecated or references (maybe indirectly) at least one deprecated element.

See corresponding docs for further information.

Note

Java SE 5+ recommends to use javax.net.ssl.SSLSession#getPeerCertificates() instead of of javax.net.ssl.SSLSession#getPeerCertificateChain() which this method is based on. Use sslSession() to access that method.

Returns:X509Certificate[]

an ordered array of the peer certificates. Returns null if connection is not SSL.

Annotations
@GenIgnore
Exceptions
SSLPeerUnverifiedException:
SSL peer's identity has not been verified.
See Also
javax.net.ssl.SSLSession#getPeerCertificateChain(), sslSession()
queryback to summary
public @Nullable String query()
Returns:@Nullable String

the query part of the uri. For example someparam=32&someotherparam=x

remoteAddressback to summary
public default SocketAddress remoteAddress()
Returns:SocketAddress

the remote address for this connection, possibly null (e.g a server bound on a domain socket). If useProxyProtocol is set to true, the address returned will be of the actual connecting client.

Annotations
@CacheReturn
responseback to summary
public HttpServerResponse response()
Returns:HttpServerResponse

the response. Each instance of this class has an HttpServerResponse instance attached to it. This is used to send the response back to the client.

Annotations
@CacheReturn
resumeback to summary
public HttpServerRequest resume()

Redeclares io.vertx.core.streams.ReadStream.resume.

Doc from io.vertx.core.streams.ReadStream.resume.

Resume reading, and sets the buffer in flowing mode.

If the ReadStream has been paused, reading will recommence on it.

Returns:HttpServerRequest

a reference to this, so the API can be used fluently

Annotations
@Override
routedback to summary
public default HttpServerRequest routed(String route)

Marks this request as being routed to the given route. This is purely informational and is being provided to metrics.

Parameters
route:String

The route this request has been routed to.

Annotations
@Fluent
schemeback to summary
public @Nullable String scheme()
Returns:@Nullable String

the scheme of the request

setExpectMultipartback to summary
public HttpServerRequest setExpectMultipart(boolean expect)

Call this with true if you are expecting a multi-part body to be submitted in the request. This must be called before the body of the request has been received

Parameters
expect:boolean

true - if you are expecting a multi-part body

Returns:HttpServerRequest

a reference to this, so the API can be used fluently

Annotations
@Fluent
setParamsCharsetback to summary
public HttpServerRequest setParamsCharset(String charset)

Override the charset to use for decoding the query parameter map, when none is set, UTF8 is used.

Parameters
charset:String

the charset to use for decoding query params

Returns:HttpServerRequest

a reference to this, so the API can be used fluently

Annotations
@Fluent
sslSessionback to summary
public default SSLSession sslSession()
Returns:SSLSession

SSLSession associated with the underlying socket. Returns null if connection is not SSL.

Annotations
@GenIgnore:permitted-type
See Also
javax.net.ssl.SSLSession
streamIdback to summary
public default int streamId()
Returns:int

the id of the stream of this request, -1 when it is not yet determined, i.e the request has not been yet sent or it is not supported HTTP/1.x

Annotations
@CacheReturn
streamPriorityback to summary
public default StreamPriority streamPriority()
Returns:StreamPriority

the priority of the associated HTTP/2 stream for HTTP/2 otherwise null

streamPriorityHandlerback to summary
public HttpServerRequest streamPriorityHandler(Handler<StreamPriority> handler)

Set an handler for stream priority changes

This is not implemented for HTTP/1.x.

Parameters
handler:Handler<StreamPriority>

the handler to be called when stream priority changes

Annotations
@Fluent
toNetSocketback to summary
public default void toNetSocket(Handler<AsyncResult<NetSocket>> handler)

Establish a TCP tunnel with the client.

This must be called only for CONNECT HTTP method or for HTTP connection upgrade, before any response is sent.

Calling this sends a 200 response for a CONNECT or a 101 for a connection upgrade wit no content-length header set and then provides the NetSocket for handling the created tunnel. Any HTTP header set on the response before calling this method will be sent.

server.requestHandler(req -> {
  if (req.method() == HttpMethod.CONNECT) {
    // Send a 200 response to accept the connect
    NetSocket socket = req.netSocket();
    socket.handler(buff -> {
      socket.write(buff);
    });
  }
  ...
});
Parameters
handler:Handler<AsyncResult<NetSocket>>

the completion handler

toNetSocketback to summary
public Future<NetSocket> toNetSocket()

Like toNetSocket(Handler) but returns a Future of the asynchronous result

toWebSocketback to summary
public default void toWebSocket(Handler<AsyncResult<ServerWebSocket>> handler)

Upgrade the connection of the current request to a WebSocket.

This is an alternative way of handling WebSockets and can only be used if no WebSocket handler is set on the HttpServer, and can only be used during the upgrade request during the WebSocket handshake.

Both handler(Handler) and endHandler(Handler) will be set to get the full body of the request that is necessary to perform the WebSocket handshake.

If you need to do an asynchronous upgrade, i.e not performed immediately in your request handler, you need to pause() the request in order to not lose HTTP events necessary to upgrade the request.

Parameters
handler:Handler<AsyncResult<ServerWebSocket>>

the completion handler

toWebSocketback to summary
public Future<ServerWebSocket> toWebSocket()

Like toWebSocket(Handler) but returns a Future of the asynchronous result

uploadHandlerback to summary
public HttpServerRequest uploadHandler(@Nullable Handler<HttpServerFileUpload> uploadHandler)

Set an upload handler. The handler will get notified once a new file upload was received to allow you to deal with the file upload.

Returns:HttpServerRequest

a reference to this, so the API can be used fluently

Annotations
@Fluent
uriback to summary
public String uri()
Returns:String

the URI of the request. This is usually a relative URI

versionback to summary
public HttpVersion version()
Returns:HttpVersion

the HTTP version of the request