post method

Future<Map<String, dynamic>> post(
  1. String methodUrl, {
  2. Map<String, dynamic>? body,
  3. Map<String, String>? headers,
})

Sets auth headers in provided headers and sends HTTP POST request to given methodUrl.

Implementation

Future<Map<String, dynamic>> post(String methodUrl,
    {Map<String, dynamic>? body, Map<String, String>? headers}) async {
  final url = baseUri + methodUrl;

  headers = await _setAuthHeader(headers);
  body ??= {};

  Map<String, dynamic> responseMap;
  var response =
      await http.post(Uri.parse(url), headers: headers, body: body);

  try {
    responseMap = _decodeResponse(response);
  } on AuthException {
    await authenticate();
    headers = await _setAuthHeader(headers);

    response = await http.post(Uri.parse(url), headers: headers, body: body);
    responseMap = _decodeResponse(response);
  }

  return responseMap;
}