post method
Executes a HTTP POST request for the given apiPath.
If jsonEncodeBody is true, the body will be JSON-encoded
before sending.
Implementation
Future<Response?> post(String apiPath, {Object? body, bool jsonEncodeBody = true}) async {
Logger.log("--------> START OF POST API CALL <--------", type: LogType.api, tag: "DF-API-CLIENT");
Object? requestBody = body;
if (jsonEncodeBody && body != null) {
requestBody = jsonEncode(body);
}
Uri apiUri = _generateApiUri(apiPath);
return _processApiCall(
apiPath: apiPath,
httpApiConfig.maxRetryAttempts,
apiCall: () async {
return await httpClient
.post(apiUri, encoding: httpApiConfig.encoding, body: requestBody, headers: httpApiConfig.headers)
.timeout(
Duration(seconds: httpApiConfig.timeout),
onTimeout: () => throw Exception("API Timeout exception, no response from the server for: $apiPath"),
);
},
);
}