Request class

An HTTP request to be processed by a Shelf application.

Available extensions

Constructors

Request(String method, Uri requestedUri, {String? protocolVersion, Map<String, Object>? headers, String? handlerPath, Uri? url, Object? body, Encoding? encoding, Map<String, Object>? context, void onHijack(void (StreamChannel<List<int>>))?})
Creates a new Request.

Properties

canHijack bool
Whether this request can be hijacked.
no setter
contentLength int?
The contents of the content-length field in headers.
no setterinherited
context Map<String, Object>
Extra context that can be used by for middleware and handlers.
finalinherited
encoding Encoding?
The encoding of the message body.
no setterinherited
handlerPath String
The URL path to the current handler.
final
hashCode int
The hash code for this object.
no setterinherited
headers Map<String, String>
The HTTP headers with case-insensitive keys.
no setterinherited
headersAll Map<String, List<String>>
The HTTP headers with multiple values with case-insensitive keys.
no setterinherited
ifModifiedSince DateTime?
If this is non-null and the requested resource hasn't been modified since this date and time, the server should return a 304 Not Modified response.
no setter
isEmpty bool
If true, the stream returned by read won't emit any bytes.
no setterinherited
method String
The HTTP request method, such as "GET" or "POST".
final
mimeType String?
The MIME type of the message.
no setterinherited
protocolVersion String
The HTTP protocol version used in the request, either "1.0" or "1.1".
final
requestedUri Uri
The original Uri for the request.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
url Uri
The URL path from the current handler to the requested resource, relative to handlerPath, plus any query parameters.
final

Methods

apiKey({String header = 'x-api-key', String query = 'api_key', bool allowQuery = true}) Future<String>

Available on Request, provided by the RequestExtraction extension

An API key from a header, falling back to the query string.
basicCredentials({String realm = 'restricted'}) Future<BasicCredentials>

Available on Request, provided by the RequestExtraction extension

The decoded username and password of an Authorization: Basic header.
bearerToken() Future<String>

Available on Request, provided by the RequestExtraction extension

The token from an Authorization: Bearer header.
body<T>(T deserialize(Map<String, Object?> json)) Future<T>

Available on Request, provided by the RequestExtraction extension

The JSON object body, decoded with deserialize.
bodyList<T>(T deserialize(Map<String, Object?> json)) Future<List<T>>

Available on Request, provided by the RequestExtraction extension

The JSON array body, each element decoded with deserialize.
bodyStream() Future<Stream<List<int>>>

Available on Request, provided by the RequestExtraction extension

The body as an unread stream, for a handler that owns its own limit.
change({Map<String, Object?>? headers, Map<String, Object?>? context, String? path, Object? body}) Request
Creates a new Request by copying existing values and applying specified changes.

Available on Request, provided by the RequestExtraction extension

One cookie, coerced to T. A nullable T makes it optional.
cookies() Future<CookieJar>

Available on Request, provided by the RequestExtraction extension

Every cookie at once.
extract<T>(FromRequestParts<T> extractor) Future<T>

Available on Request, provided by the RequestExtraction extension

Runs extractor against this request.
form() Future<FormMap>

Available on Request, provided by the RequestExtraction extension

The decoded fields of an application/x-www-form-urlencoded body.

Available on Request, provided by the RequestExtraction extension

One header, or null when it is absent.
headerMap() Future<Map<String, String>>

Available on Request, provided by the RequestExtraction extension

Every header at once, keyed by lower-case name.
hijack(void callback(StreamChannel<List<int>>)) → Never
Takes control of the underlying request socket.
host() Future<String>

Available on Request, provided by the RequestExtraction extension

The Host header this request was addressed to.
multipart() Future<MultipartForm>

Available on Request, provided by the RequestExtraction extension

The parts of a multipart/form-data body.
multipartStream({int limit = 64 * 1024 * 1024}) Future<StreamedMultipart>

Available on Request, provided by the RequestExtraction extension

Hands the multipart body over a part at a time, without buffering it.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
path<T>(String name) Future<T>

Available on Request, provided by the RequestExtraction extension

The {name} path segment, coerced to T.
peer() Future<PeerInfo>

Available on Request, provided by the RequestExtraction extension

The connection's peer address and port.
queries() Future<Map<String, String>>

Available on Request, provided by the RequestExtraction extension

Every query pair at once.
query<T>(String name) Future<T>

Available on Request, provided by the RequestExtraction extension

One query value, coerced to T.
queryList<T>(String name) Future<List<T>>

Available on Request, provided by the RequestExtraction extension

Every value of a repeated query key, coerced to T.
rawBody() Future<Uint8List>

Available on Request, provided by the RequestExtraction extension

The body as raw bytes.
rawQuery() Future<String?>

Available on Request, provided by the RequestExtraction extension

The raw, undecoded query string, or null when there is none.
read() Stream<List<int>>
Returns a Stream representing the body.
inherited
readAsString([Encoding? encoding]) Future<String>
Returns a Future containing the body as a String.
inherited
sessionId({String name = 'session'}) Future<String>

Available on Request, provided by the RequestExtraction extension

A session identifier from a cookie, as 401 rather than 400 when absent.
state<T extends Object>() Future<T>

Available on Request, provided by the RequestExtraction extension

The application state of type T attached with withState.
textBody() Future<String>

Available on Request, provided by the RequestExtraction extension

The body as UTF-8 text.
toString() String
A string representation of this object.
inherited
validBody<T extends Validatable>(T deserialize(Map<String, Object?> json)) Future<T>

Available on Request, provided by the RequestExtraction extension

The JSON object body, decoded and then checked against its constraints.

Operators

operator ==(Object other) bool
The equality operator.
inherited