Я использую Robospice на Android с Retrofit и OKHttp. Все отлично работает с ответами, переданными активности с помощью Robospice RequestListener. Проблема в том, что он возвращает ошибку только в том случае, если время ожидания соединения истекло или возникла другая проблема с сетью. Если возвращается ошибка 401, то она классифицируется как успешная, но с нулевым ответом, поскольку не удалось разобрать JSON в наш POJO MobileAppSetup.
На данный момент мне нужно выполнить нулевую проверку ответа, но я понятия не имею, в чем причина, была ли это ошибка сервера или действительный 401.
public final class HTTPRequestListener implements RequestListener<MobileAppSetup> {
@Override
public void onRequestFailure(SpiceException spiceException) {
Log.d("", "failure:"+ spiceException);
loginProgress.hide();
}
@Override
public void onRequestSuccess(final MobileAppSetup response) {
Log.d("","success. Data: "+response);
if(response==null)
showDialog("Error logging in", "Please check your username and password and try again.", "");
loginProgress.hide();
postLoginProcess(response);
}
}
Мне нужно передать эти ошибки обратному вызову onRequestFailure, чтобы я мог правильно с этим справиться. Есть ли способ указать коды ошибок, которые Robospice должен рассматривать как ошибку. Я думаю, что это связано с добавлением какого-то пользовательского обработчика ошибок, но на данный момент я не могу найти решение.