Перестать показывать ошибку из HTTP или DIO запроса - PullRequest
0 голосов
/ 23 апреля 2020

У меня проблема при получении запроса об ошибке от API (при ответе сервера 500). Я использую dio или http плагин для флаттера плагина.

Проблема в том, что флаттер не выдает никакой ошибки.

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

Ответы [ 2 ]

1 голос
/ 23 апреля 2020

попробуйте это для обработки исключений

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);
    }
}
1 голос
/ 23 апреля 2020

В любом случае вы получите объект Response. Согласно документации DIO Handling Errors , он вернет объект 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...