sendReq<T> method
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;
}