request method

Future request(
  1. String url, {
  2. HTTPMethod method = HTTPMethod.get,
  3. Map<String, dynamic>? params,
  4. Map<String, dynamic>? body,
  5. String? bodyString,
  6. Map<String, dynamic>? headers,
  7. bool showProgress = false,
  8. bool isFormData = false,
  9. CancelToken? cancelToken,
  10. ResponseType? responseType,
  11. bool includeNon2xxBody = false,
})

Implementation

Future<dynamic> request(String url,
    {HTTPMethod method = HTTPMethod.get,
    Map<String, dynamic>? params,
    Map<String, dynamic>? body,
    /// When set, POST/PUT uses this exact string as the body (for HMAC parity with signing).
    String? bodyString,
    Map<String, dynamic>? headers,
    bool showProgress = false,
    bool isFormData = false,
    CancelToken? cancelToken,
    ResponseType? responseType,
    /// When true, POST returns [Response.data] even for non-2xx (e.g. payment API JSON on 400).
    bool includeNon2xxBody = false}) async {
  // await _initDio();
  // if (await isInternetConnected()) {
  // await _addUserToken();
  try {
    if (headers != null) {
      _headers.clear();
      _headers.addAll(headers);
    }
    params ??= {};
    body ??= {};

    switch (method) {
      case HTTPMethod.get:
        return _get(url,
            params: params,
            cancelToken: cancelToken,
            showProgress: showProgress,
            responseType: responseType);
      case HTTPMethod.post:
        return _post(url,
            params: params,
            body: body,
            bodyString: bodyString,
            cancelToken: cancelToken,
            showProgress: showProgress,
            isFormData: isFormData,
            includeNon2xxBody: includeNon2xxBody);
      case HTTPMethod.put:
        return _put(url,
            params: params,
            body: body,
            bodyString: bodyString,
            cancelToken: cancelToken,
            showProgress: showProgress,
            isFormData: isFormData);
      case HTTPMethod.patch:
        return _patch(url,
            params: params,
            body: body,
            cancelToken: cancelToken,
            showProgress: showProgress);
      case HTTPMethod.delete:
        return _delete(url, params: params, cancelToken: cancelToken);
    }
  } catch (e) {
    DioException(error: "Certificate", requestOptions: RequestOptions());
  }
  // } else {
  //   throw DioError(
  //       error: "no_internet_connection",
  //       type: DioErrorType.connectTimeout,
  //       response: Response(
  //           statusMessage: "no_internet_connection",
  //           statusCode: 800,
  //           requestOptions: RequestOptions(path: '')),
  //       requestOptions: RequestOptions(path: ''));
  // }
}