post static method

Future<Map<String, dynamic>> post({
  1. required String url,
  2. Map<String, dynamic> data = const {},
  3. Map<String, String> queryParams = const {},
  4. Map<String, String>? headers,
})

Implementation

static Future<Map<String,dynamic>> post({required String url,Map<String,dynamic >data=const {},Map<String, String> queryParams=const {},Map<String, String>? headers}) async {
  Map<String,dynamic> result={"status":"failure","message":"error sending request"};
  try{
    Uri webUrl=WebServiceHelper.parseUrl(url,params: queryParams);
    _debug("Executing Post on $webUrl");
    _debug(data);
    http.Response response = await http.post(
        webUrl,
      body: jsonEncode(data),
      headers: await WebServiceHelper.getHeaders(requestHeaders: headers),
    );
    _debug("Received Response");
    _debug(response.body);
    _debug(response.body);
    if (response.statusCode != 200 && response.statusCode != 201) {
      _handleError(url: url,response: response);
    }
    else {
      result = json.decode(response.body);
    }
  }
  on Exception catch(ex,stack){
    _debug(ex.runtimeType.toString());
    if(ex.runtimeType.toString()=="_ClientSocketException"){
      result["message"]="Connection Error!";
    }
    _handleException(exception:ex, stackTrace: stack,url:url);
  }
  return result;
}