Skip to content
Snippets Groups Projects
restdata.dart 916 B
Newer Older
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;
    }
  }
}