genericHttpPost method

Future<Response> genericHttpPost(
  1. String url,
  2. Map<String, String> headers,
  3. String jsonInput
)

Implementation

Future<Response> genericHttpPost(String url,Map<String, String> headers, String jsonInput) async {
  try{

    if(!await _beaNetworkManager!.checkNetworkConnection()){
      throw new BeaInternetException("No internet connection");
    }

    var dio = Dio();
    dio.options
      ..connectTimeout = 60000 //60sec
      ..receiveTimeout = 60000 //60sec
      ..validateStatus = (int? status) {
        return status! > 0;
      }
      ..headers = headers;

    dio.interceptors
      ..add(InterceptorsWrapper(
        onError: (DioError e, handler){
            switch(e.type){
              case DioErrorType.connectTimeout:
              case DioErrorType.receiveTimeout:
              case DioErrorType.sendTimeout:
                throw new Exception("Request in timeout - ${e.message}");
              case DioErrorType.response:
                break;
              case DioErrorType.cancel:
                throw new Exception("Request cancelled - ${e.message}");
              case DioErrorType.other:
                throw new Exception("Default error - ${e.message}");
            }
        }
        ));

    Response response = await dio.post(url, data: jsonInput);

    return response;

  }on Exception catch (e){
    print('Generic HTTP POST request error');
    FLog.error(
        className: this.runtimeType.toString(),
        methodName: "genericHttpPost",
        text: 'Generic HTTP POST request error - $e');
    throw e;
  }
}