import 'dart:async'; import 'dart:convert'; import 'dart:io'; import 'package:flutter/cupertino.dart'; import 'package:http/http.dart' as http; import 'datamodel.dart'; class RestData { Future<Map> fetchData(String url) async { List<Collection> collectionList = []; Map valueMap; try { final response = await http.get(Uri.parse(url)).timeout( const Duration(milliseconds: 500)); if (response.statusCode == 200) { valueMap = json.decode(response.body) ; return valueMap; } else { throw Exception('Failed to fetch Data. Header: ${response .headers} StatusCode: ${response.statusCode} Body: ${response .body}'); } } on SocketException catch (e) { throw Exception('No connection'); } on TimeoutException catch (e) { throw Exception('Connection Timeout'); } catch (e) { rethrow; } } }