A Future-based library for making HTTP requests.

To use, import package:flutter/http.dart.

This library is based on Dart's http package, but differs in that it does not have a dependency on mirrors.

Typedefs

ClientOverride() Client

MockClientHandler(BaseRequest request) Future<Response>

A handler function that receives Requests and sends Responses. Note that request will be finalized.

MockClientStreamHandler(BaseRequest request, ByteStream bodyStream) Future<StreamedResponse>

A handler function that receives StreamedRequests and sends StreamedResponses. Note that request will be finalized.

Functions

delete(url, { Map<String, String> headers }) Future<Response>

Sends an HTTP DELETE request with the given headers to the given URL, which can be a Uri or a String.

get(url, { Map<String, String> headers }) Future<Response>

Sends an HTTP GET request with the given headers to the given URL, which can be a Uri or a String.

Sends an HTTP HEAD request with the given headers to the given URL, which can be a Uri or a String.

patch(url, { Map<String, String> headers, body, Encoding encoding }) Future<Response>

Sends an HTTP PATCH request with the given headers and body to the given URL, which can be a Uri or a String.

post(url, { Map<String, String> headers, body, Encoding encoding }) Future<Response>

Sends an HTTP POST request with the given headers and body to the given URL, which can be a Uri or a String.

put(url, { Map<String, String> headers, body, Encoding encoding }) Future<Response>

Sends an HTTP PUT request with the given headers and body to the given URL, which can be a Uri or a String.

read(url, { Map<String, String> headers }) Future<String>

Sends an HTTP GET request with the given headers to the given URL, which can be a Uri or a String, and returns a Future that completes to the body of the response as a String.

readBytes(url, { Map<String, String> headers }) Future<Uint8List>

Sends an HTTP GET request with the given headers to the given URL, which can be a Uri or a String, and returns a Future that completes to the body of the response as a list of bytes.

Classes

BaseClient

The abstract base class for an HTTP client. This is a mixin-style class; subclasses only need to implement send and maybe close, and then they get various convenience methods for free.

BaseRequest

The base class for HTTP requests.

BaseResponse

The base class for HTTP responses.

ByteStream

A stream of chunks of bytes representing a single piece of data.

Client

The interface for HTTP clients that take care of maintaining persistent connections across multiple requests to the same server. If you only need to send a single request, it's usually easier to use head, get, post, put, patch, or delete instead.

IOClient

A dart:io-based HTTP client.

MockClient

A mock HTTP client designed for use when testing code that uses BaseClient. This client allows you to define a handler callback for all requests that are made through it so that you can mock a server without having to send real HTTP requests.

MultipartFile

A file to be uploaded as part of a MultipartRequest. This doesn't need to correspond to a physical file.

MultipartRequest

A multipart/form-data request. Such a request has both string fields, which function as normal form fields, and (potentially streamed) binary files.

Request

An HTTP request where the entire request body is known in advance.

Response

An HTTP response where the entire response body is known in advance.

StreamedRequest

An HTTP request where the request body is sent asynchronously after the connection has been established and the headers have been sent.

StreamedResponse

An HTTP response where the response body is received asynchronously after the headers have been received.

Exceptions / Errors

ClientException

An exception caused by an error in a pkg/http client.