首页 > 解决方案 > 发生 Flutter Http 异常。_Exception(异常:加载数据失败)

问题描述

我想检查 Api Url Statuscode 是否为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');
  }
}

我怎样才能解决这个问题 ?谢谢

标签: flutterdart

解决方案


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

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

大多数情况下,异常来自糟糕的互联网连接、后端问题或互联网连接丢失,当您使用上述代码时,它会打印出异常的类型,以便您识别错误的根源。我希望能有所帮助


推荐阅读