我要检查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');
}
}
我该如何解决?谢谢
答案 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;}
}
大多数情况下,异常是由于互联网连接不良,后端问题或互联网连接丢失而引起的,当您使用上述代码时,它将打印出异常的类型,以便您识别出异常的根源错误。 希望能对您有所帮助