fetchJsonFromUrl method
Implementation
Future<List<String>> fetchJsonFromUrl(String url) async {
HttpClient httpClient = HttpClient();
try {
HttpClientRequest request = await httpClient.getUrl(Uri.parse(url));
HttpClientResponse response = await request.close();
print('response Status: ${response.statusCode}');
if (response.statusCode == 200) {
String jsonResponse = await response.transform(utf8.decoder).join();
List<dynamic> dataList = json.decode(jsonResponse);
return dataList.cast<String>();
} else {
print('Failed to fetch data. Status code: ${response.statusCode}');
if (url != Url.getWebSocketUrl(GlobalConfig.defaultEnv)) {
print('Fetching backup URL');
return await fetchJsonFromUrl(
Url.getWebSocketUrl(GlobalConfig.defaultEnv));
} else {
return [];
}
}
} catch (e) {
print('Error fetching JSON data: $e');
return [];
} finally {
httpClient.close();
}
}