#android #android-volley
Вопрос:
Я использую Volley JsonObjectRequest
для извлечения данных JSON с веб-сервера. В основном мой код выглядит так:
JsonObjectRequest jsonRequest = new JsonObjectRequest("https://www.example.com", null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
...
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (error.networkResponse.statusCode == 401) {
// Show toast message saying "Access unauthorized"
} else {
// show toast message saying "Could not fetch"
}
}
});
Если запрос завершается с ошибкой 401, всплывающее сообщение «Несанкционированный доступ» отображается, как и ожидалось. Однако, если запрос не выполняется по какой-либо причине, например, из-за отсутствия Интернета, приложение завершает работу и выдает NullPointerException
сообщение «потому networkResponse
что не существует error
«.
Как мне правильно справиться с обеими причинами сбоя?
Ответ №1:
Вы можете справиться с этим любым из перечисленных ниже способов,
- Обработайте потерянный интернет-сигнал в своем приложении и перейдите на другую страницу (найдите, как работать без Интернета, доступно много статей).
- Окружите вызов JsonObjectRequest, попробуйте поймать и обработать исключение самостоятельно
Комментарии:
1. Хорошо, я выберу второй вариант. Спасибо.