postRequest static method

dynamic postRequest({
  1. required Uri url,
  2. Map<String, String>? headers,
  3. required dynamic body,
})

Http post request

Implementation

static postRequest({required Uri url, Map<String, String>? headers, required dynamic body}) async {
  try {
    UnifiedRequest prepared = await UnifiedInterceptorRunner.runOnRequest(
      UnifiedRequest(method: 'POST', uri: url, headers: headers, body: body),
      _interceptors,
    );

    debugPrint('requesting post : ${prepared.uri}');
    final response = _client != null
        ? await _client!.post(prepared.uri, headers: prepared.headers, body: json.encode(prepared.body))
        : await http.post(prepared.uri, headers: prepared.headers, body: json.encode(prepared.body));

    await UnifiedInterceptorRunner.runOnResponse(
      UnifiedResponse(
        statusCode: response.statusCode,
        data: response.body,
        headers: response.headers,
        request: prepared,
      ),
      _interceptors,
    );
    return response;
  } on PlatformException catch (e, st) {
    await _notifyError(e, st, request: UnifiedRequest(method: 'POST', uri: url, headers: headers, body: body));
    return Failure(ErrorResponse(
        unifiedHttpClientEnum: UnifiedHttpClientEnum.platformExceptionError,
        errorResponseHolder: ErrorResponseHolder(defaultMessage: 'Platform Exception Caught')));
  } on SocketException catch (e, st) {
    await _notifyError(e, st, request: UnifiedRequest(method: 'POST', uri: url, headers: headers, body: body));
    return Failure(ErrorResponse(
        unifiedHttpClientEnum: UnifiedHttpClientEnum.socketExceptionError,
        errorResponseHolder: ErrorResponseHolder(defaultMessage: 'Socket Exception:$e')));
  } on FormatException catch (e, st) {
    await _notifyError(e, st, request: UnifiedRequest(method: 'POST', uri: url, headers: headers, body: body));
    return Failure(ErrorResponse(
        unifiedHttpClientEnum: UnifiedHttpClientEnum.formatExceptionError,
        errorResponseHolder: ErrorResponseHolder(defaultMessage: 'format exception Error')));
  } catch (e, st) {
    await _notifyError(e, st, request: UnifiedRequest(method: 'POST', uri: url, headers: headers, body: body));
    return Failure(ErrorResponse(
        unifiedHttpClientEnum: UnifiedHttpClientEnum.undefined,
        errorResponseHolder: ErrorResponseHolder(defaultMessage: 'something went Wrong : $e')));
  }
}