postAPI2 method

Future<String> postAPI2(
  1. String url, {
  2. int timeout = 20,
  3. String method = 'POST',
  4. bool isFullPath = false,
  5. Map<String, String>? body,
  6. Map<String, String>? header,
  7. bool hasHeader = true,
  8. bool checkSttCode = true,
})

Implementation

Future<String> postAPI2(String url, {int timeout = 20, String method = 'POST', bool isFullPath = false,
  Map<String, String>? body, Map<String, String>? header, bool hasHeader = true, bool checkSttCode = true}) async {
  try {
    final request = http.MultipartRequest(method, Uri.parse(isFullPath ? url : Constants().baseUrl + url));
    if (hasHeader) request.headers.addAll(await _getHeader());
    if (header != null) request.headers.addAll(header);
    if (body != null) request.fields.addAll(body);
    final streamResponse = await request.send().timeout(Duration(seconds: timeout));
    final response = await http.Response.fromStream(streamResponse);
    if (showLog == true) {
      logDev.log('\n\nadvn-request url: ' + request.url.toString());
      logDev.log('\nadvn-request header: $header');
      logDev.log('\nadvn-request body: $body');
      logDev.log('\nadvn-response: ${response.body}\n');
    }
    if (checkSttCode) return response.statusCode == 200 ? response.body : '';
    return response.body;
  } catch (_) {}
  return '';
}