Flutter Http异常已发生。 _Exception(异常:加载数据失败)

时间:2019-08-12 11:11:18

标签: flutter dart

我要检查Api Url状态码是否为 200 ,一切正常,直到 else 语句中。
我遇到了这个错误

Exception has occurred.
_Exception (Exception: Failed Load Data)

这是我的代码Api

Future<List<Mosque>> getMahasiswaById(String id) async {
  var baseURL=Urls.BASE_API_URL;
  var apiRespon = await http.get('$baseURL/mahasiswa/get/id/$id');
  if(apiRespon.statusCode == 200) {
    final apiResponJson = json.decode(apiRespon.body);
    print(apiResponJson);
    return (apiResponJson['data'] as List).map((p)=>Mosque.fromJson(p)).toList();
  } else {
    throw Exception('Failed Load Data');
  }
}

我该如何解决?谢谢

1 个答案:

答案 0 :(得分:1)

始终使用try和catch处理HTTP请求,它将帮助您识别异常的来源,您可以执行以下操作:

Future<List<Mosque>> getMahasiswaById(String id) async{
    var baseURL=Urls.BASE_API_URL;
    try{
    var apiRespon = await http.get('$baseURL/mahasiswa/get/id/$id');
   if(apiRespon.statusCode == 200){
      final apiResponJson = json.decode(apiRespon.body);
      print(apiResponJson);
      return (apiResponJson['data'] as List).map((p)=>Mosque.fromJson(p)).toList();
      }
     else {
         print(apiReson.statusCode.toString());
         throw Exception('Failed load data with status code ${apiReson.statusCode}');   
   }
  catch(e){ 
       print (e); 
       throw e;}
 }

大多数情况下,异常是由于互联网连接不良,后端问题或互联网连接丢失而引起的,当您使用上述代码时,它将打印出异常的类型,以便您识别出异常的根源错误。 希望能对您有所帮助