当我从API收到错误请求时(服务器响应500),我遇到了问题。 我正在使用 dio 或 http 插件作为 flutter 插件。
问题是颤振不显示任何错误。
(DIO: resp.data, HTTP: resp.body)
答案 0 :(得分:1)
无论如何,您都将检索Response对象。根据{{3}}文档,它将返回DioError对象。
// DIO Example
Response response = await dio.get('https://google.com');
print(response.statusCode); // 500
print(response.data); // Contains a Dio Error object
HTTP包的工作原理与此类似。
var url = 'https://example.com/whatsit/create';
var response = await http.post(url, body: {'name': 'doodle', 'color': 'blue'});
print(response.statusCode); // 500
print(response.body); // Error message
这意味着在任何情况下,您都不会直接收到Flutter的错误,必须自己处理错误。例如,如果状态码不是200,则可能会引发错误。
if(response.statusCode == 200){
// everything works as expected
} else {
throw Error();
}
答案 1 :(得分:1)
尝试此操作以进行异常处理
try {
Response response = await dio.get('https://google.com');
print(response.statusCode); // 500
print(response.data); // Contains a Dio Error object
} on DioError catch(e) {
print(e);
}
}