停止显示来自HTTP或DIO请求的错误

时间:2020-04-23 07:06:49

标签: flutter

当我从API收到错误请求时(服务器响应500),我遇到了问题。 我正在使用 dio http 插件作为 flutter 插件。

问题是颤振不显示任何错误。

(DIO: resp.data, HTTP: resp.body)

2 个答案:

答案 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);
    }
}