post method

  1. @override
Future<Response> post(
  1. Uri url, {
  2. Map<String, String>? headers,
  3. Object? body,
  4. Encoding? encoding,
  5. bool validate = false,
})

Sends an HTTP POST request with the given headers and body to the given URL.

body sets the body of the request. It can be a String, a List<int> or a Map<String, String>.

If body is a String, it's encoded using encoding and used as the body of the request. The content-type of the request will default to "text/plain".

If body is a List, it's used as a list of bytes for the body of the request.

If body is a Map, it's encoded as form fields using encoding. The content-type of the request will be set to "application/x-www-form-urlencoded"; this cannot be overridden.

encoding defaults to utf8.

For more fine-grained control over the request, use send instead.

Implementation

@override
Future<http.Response> post(
  Uri url, {
  Map<String, String>? headers,
  Object? body,
  Encoding? encoding,
  bool validate = false,
}) async {
  final response =
      await super.post(url, headers: headers, body: body, encoding: encoding);
  if (_closed) throw HttpClientClosedException();

  if (validate) {
    _validateResponse(response, response.statusCode);
  }
  return response;
}