FetchClient class
HTTP client based on Fetch API. It does support streaming and can handle non 200 responses.
This implementation has some restrictions:
-
BaseRequest.persistentConnection
is translated toFetchOptions.keepalive
(if streamRequests is disabled). -
BaseRequest.contentLength
is ignored. -
When
BaseRequest.followRedirects
istrue
you can get redirect information via FetchResponse.redirected and FetchResponse.url). IfBaseRequest.followRedirects
isfalse
redirectPolicy takes place and dictates FetchClient actions. -
BaseRequest.maxRedirects
is ignored. -
FetchClient.streamRequests is supported only in Chromium 105+ based browsers and requires server to be HTTP/2 or HTTP/3.
See compatibility chart and Chrome Developers blog for more info.
Constructors
- FetchClient({RequestMode mode = RequestMode.noCors, RequestCredentials credentials = RequestCredentials.sameOrigin, RequestCache cache = RequestCache.byDefault, String referrer = '', RequestReferrerPolicy referrerPolicy = RequestReferrerPolicy.strictOriginWhenCrossOrigin, RedirectPolicy redirectPolicy = RedirectPolicy.alwaysFollow, bool streamRequests = false})
- Create new HTTP client based on Fetch API.
Properties
- cache → RequestCache
-
The default cache mode which controls how requests will interact with
the browser's HTTP cache.
final
- credentials → RequestCredentials
-
The default credentials mode, defines what browsers do with credentials
(cookies, HTTP authentication entries, and TLS client certificates).
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- mode → RequestMode
-
The default request mode.
final
- redirectPolicy → RedirectPolicy
-
The default redirect policy, defines how client should handle
BaseRequest.followRedirects
.final - referrer → String
-
The default referrer.
This can be a same-origin URL,
about:client
, or an empty string.final - referrerPolicy → RequestReferrerPolicy
-
The default referrer policy.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- streamRequests → bool
-
Whether to use
ReadableStream
as body for requests streaming.final
Methods
-
close(
) → void - Closes the client.
-
delete(
Uri url, {Map< String, String> ? headers, Object? body, Encoding? encoding}) → Future<Response> -
Sends an HTTP DELETE request with the given headers to the given URL.
inherited
-
get(
Uri url, {Map< String, String> ? headers}) → Future<Response> -
Sends an HTTP GET request with the given headers to the given URL.
inherited
-
head(
Uri url, {Map< String, String> ? headers}) → Future<Response> -
Sends an HTTP HEAD request with the given headers to the given URL.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
patch(
Uri url, {Map< String, String> ? headers, Object? body, Encoding? encoding}) → Future<Response> -
Sends an HTTP PATCH request with the given headers and body to the given
URL.
inherited
-
post(
Uri url, {Map< String, String> ? headers, Object? body, Encoding? encoding}) → Future<Response> -
Sends an HTTP POST request with the given headers and body to the given
URL.
inherited
-
put(
Uri url, {Map< String, String> ? headers, Object? body, Encoding? encoding}) → Future<Response> -
Sends an HTTP PUT request with the given headers and body to the given
URL.
inherited
-
read(
Uri url, {Map< String, String> ? headers}) → Future<String> -
Sends an HTTP GET request with the given headers to the given URL and
returns a Future that completes to the body of the response as a String.
inherited
-
readBytes(
Uri url, {Map< String, String> ? headers}) → Future<Uint8List> -
Sends an HTTP GET request with the given headers to the given URL and
returns a Future that completes to the body of the response as a list of
bytes.
inherited
-
send(
BaseRequest request) → Future< FetchResponse> - Sends an HTTP request and asynchronously returns the response.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited