get method
Get function invoked on HTTP requests
Implementation
Future<void> get(QueryParameters queryParameters, [Duration? timeout]) async {
final uri = Uri.https(_baseUri, '/v1/vardata', queryParameters.toJson());
final request =
httpClient.get(uri, headers: {'Authorization': 'Api-Key $_apiKey'});
if (timeout != null) {
request.timeout(
timeout,
onTimeout: () => throw TimeoutException('Request timed out!'),
);
}
final response = await request;
if (response.statusCode != 200) {
String data = response.body;
if (!_isRetry && _shouldRetry) {
// If the server did not return a 200 OK response,
// then throw an exception.
throw Exception({
'message': 'Failed to fetch through SDK!',
'status': response.statusCode,
'trace': data
});
}
_isRetry = true;
get(queryParameters, timeout);
}
Map<String, dynamic> data =
jsonDecode(const Utf8Decoder().convert(response.bodyBytes));
data.forEach((key, value) {
fetchResult[key] = ExperimentFetchItem.fromMap(value);
});
_isRetry = false;
}