sendReq<T> method

Future<RespData<T>> sendReq<T>(
  1. String rawUrl,
  2. dynamic params,
  3. String method,
  4. bool slient,
)

Implementation

Future<RespData<T>> sendReq<T>(
    String rawUrl, dynamic params, String method, bool slient) async {
  ReqInfo info;
  String url = rawUrl;
  if (params is RequestAbleParameter) {
    info = await params.getReqInfo();
    if (info.urlParameters != null) {
      url = buildUrl(rawUrl, info.urlParameters!);
    }
  } else {
    if (method == "GET") {
      if (params is JSONParameter) {
        params = params.toJson();
      }
      if (params is Map<String, dynamic>) {
        url = "$rawUrl?${makeQuery(params)}";
      }
      info = ReqInfo(contentType: URLENCODED);
    } else {
      info = ReqInfo(
          contentType: JSONTYPE,
          content: params == null ? "{}" : json.encode(params));
    }
  }
  var response = await client.sendReq(url, info, method);
  RespData<T> res;
  if (response == null) {
    res = RespData(code: RespCode.NETWORK_ERROR);
  } else if (response.status == 200 &&
      (T != dynamic || response.contentType!.contains("json"))) {
    var jsonMap = json.decode(response.body!);
    jsonMap = client.standardData(rawUrl, jsonMap);
    res = RespData.fromJson(jsonMap);
  } else {
    return RespData.raw(response);
  }
  if (!slient) {
    client.checkResult(res, url, response?.headers ?? <String, String>{});
  }
  return res;
}