get static method
Implementation
static Future<ApiResponse> get({
required Map<String, dynamic>? requestHeaders,
required Map<String, dynamic>? requestParams,
required String? endpoint,
}) async {
if (endpoint == null || endpoint.isEmpty) {
return ApiResponse(
status: false,
message: 'No endpoint specified',
response: [],
);
}
try {
debugPrint(requestHeaders?.toString());
var uri = Uri.parse('${UrlServices.baseUrl}/$endpoint');
if (requestParams != null && requestParams.isNotEmpty) {
uri = uri.replace(queryParameters: requestParams.map((k, v) => MapEntry(k, v.toString())));
}
var headers = {
'Accept': 'application/json',
'Content-Type': 'application/json',
if (requestHeaders != null) ...requestHeaders.cast<String, String>(),
};
var response = await http.get(uri, headers: headers).timeout(const Duration(minutes: 2));
debugPrint('RESPONSE during GET');
debugPrint(response.body);
if (validStatusCodes.contains(response.statusCode)) {
Map<String, dynamic> responseJson = json.decode(response.body);
if (responseJson.isEmpty) {
return ApiResponse(
status: false,
message: 'No response data from server.',
response: [],
);
}
return ApiResponse.fromJson(responseJson);
} else {
return ApiResponse(
status: false,
message: 'Unexpected server response: ${response.statusCode}',
response: [],
);
}
} on http.ClientException catch (e) {
return ApiResponse(
status: false,
message: 'Network error: ${e.message}',
response: [],
);
} catch (e) {
return ApiResponse(
status: false,
message: 'Unexpected error: ${e.toString()}',
response: [],
);
}
}