makeRequest method
Implementation
Future<Response> makeRequest(IsolateModel isolateModel) async {
if (client == null) client = http.Client();
Crypto crypto = Crypto(config.secretKey, config.publicKey);
String requestMessage = _prepareRequestMessage(crypto, isolateModel);
if (isolateModel.timeLimit == null)
isolateModel.timeLimit = config.defaultTimeout;
http.Response? response = isolateModel.request.method == Method.POST
? await _post(isolateModel.url ?? config.url,
isolateModel.requestParamName, requestMessage,
encoding: isolateModel.encoding,
headers: isolateModel.headers,
timeLimit: isolateModel.timeLimit,
onTimeOut: isolateModel.onTimeout,
isPrivate: isolateModel.isPrivate)
: await _get(isolateModel.url ?? config.url,
isolateModel.requestParamName, requestMessage,
headers: isolateModel.headers,
timeLimit: isolateModel.timeLimit,
onTimeOut: isolateModel.onTimeout);
if (response != null) {
if (response.statusCode == 200) {
// OK
var responseMessage;
if ((isolateModel.encrypt ?? false) || (config.encrypt)) {
responseMessage = response.body.replaceAll(' ', '');
} else {
responseMessage = response.body;
}
_print('raw response : ' + responseMessage);
responseMessage = _decrypt(crypto, isolateModel, responseMessage);
try {
var jsonResponse = convert.jsonDecode(responseMessage);
_print('json decoded : ' + jsonResponse.toString());
final r = Response(
response.body,
response.statusCode,
result: jsonResponse,
state: ResponseState.SUCCESS,
);
return r;
} catch (e) {
_print('json decoded exception : ' + e.toString());
final r = Response(
response.body,
response.statusCode,
result: null,
state: ResponseState.UNEXPECTED,
);
return r;
}
} else {
// error
_print(response.statusCode.toString() + ' ' + response.body);
final r = Response(response.body, response.statusCode,
result: null, state: ResponseState.ERROR);
return r;
}
} else {
_print('http response is null!');
final r = Response('http response is null!', -1,
result: null, state: ResponseState.ERROR);
return r;
}
// if (await isConnected()) else {
// return Response('Check your network connection!', -1,
// result: null, state: ResponseState.NETWORK_CONNECTION);
// }
}