fetchJsonFromUrl method

Future<List<String>> fetchJsonFromUrl(
  1. String url
)

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();
  }
}