postAPI method
Implementation
Future<BaseResponse> postAPI(String url, String method, data,
{bool hasHeader = true,
Map<String, String>? body,
List<String>? files,
List<FileByte>? realFiles,
String paramFile = 'attachment[file][]'}) async {
final baseResponse = BaseResponse();
try {
final request = http.MultipartRequest(method, Uri.parse(Constants().baseUrl + url));
if (hasHeader) request.headers.addAll(await _getHeader());
if (body != null) request.fields.addAll(body);
if (files != null && files.isNotEmpty) {
for (String path in files)
request.files.add(_createPartFile(File(path), paramFile));
} else if (realFiles != null) {
for (FileByte file in realFiles)
request.files.add(_createPartFileByte(file, paramFile));
}
final streamResponse = await request.send().timeout(Duration(seconds: request.files.isEmpty ? 90 : Constants().timeout));
final response = await http.Response.fromStream(streamResponse);
print('\nadvn-request url: ' + Constants().baseUrl + url);
print('\nadvn-response: ${response.body}\n');
baseResponse.fromJson(jsonDecode(response.body), data);
} catch (e) {
return _responseError(baseResponse, e);
}
return baseResponse;
}