sendReq method

  1. @override
Future<Response?> sendReq(
  1. String url,
  2. ReqInfo params,
  3. String method
)
override

Implementation

@override
Future<Response?> sendReq(String url, ReqInfo params, String method) async {
  var body = params.content;
  var headers = getHeaders();
  if (params.contentType.isNotEmpty) {
    headers["content-type"] = params.contentType;
  }
  String requestLog =
      'PlasoHttp1Client@sendReq:\nRequest url: ${_prefix + url}\nRequest header: $headers';
  if (!params.contentType.contains('multipart/form-data')) {
    requestLog += '\nRequest params: $body';
  }
  log.debug(requestLog, null);
  late http.Response response;
  if (method == "POST") {
    try {
      response = await http
          .post(Uri.parse(_prefix + url), headers: headers, body: body)
          .timeout(timeout);
    } catch (e) {
      return null;
    }
  }

  if (method == "GET") {
    try {
      response = await http
          .get(Uri.parse(_prefix + url), headers: headers)
          .timeout(timeout);
    } catch (e) {
      return null;
    }
  }

  var responseBody = response.body;
  if (response.headers['content-type']!.contains('application/json') &&
      !response.headers['content-type']!.contains('charset=utf-8')) {
    responseBody = Utf8Decoder().convert(response.bodyBytes);
  }
  log.debug(
      "PlasoHttp1Client@sendReq:\nResponse url: ${_prefix + url}\n  , response code: ${response.statusCode} , Response header: ${response.headers}\nResponse body: $responseBody",
      null);
  return Response(
      body: responseBody,
      bodyBytes: response.bodyBytes,
      contentType: response.headers["content-type"],
      status: response.statusCode,
      headers: response.headers);
}