我在带有 Retrofit 和 OKHttp 的 android 上使用 Robospice。对于使用 Robospice RequestListener 传递回活动的响应,一切都很好。问题是它仅在连接超时或其他网络问题时才返回失败。如果返回 401,则将其归类为成功,但响应为空,因为它无法将 JSON 解析为我们的 MobileAppSetup POJO。
目前我不得不对响应进行空值检查,但我不知道是服务器错误还是有效的 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 应视为错误的错误代码。我认为这涉及添加某种自定义错误处理程序,但目前确实找不到解决方案。