我不想达到下一个目标。
取决于json 内容desside put 或不将数据放入Robospice Cache。 有时从服务器返回的数据无效。例如,我们的授权 token 关闭时间。所以我们不应该缓存这个响应。
但是我找不到可以帮助我解决这个问题的API。 这是我现在使用请求的方式:
getSpiceManager().execute(getRequestCreator().getAllCategories(), getRequestCreator().getLastCacheKey(),
DurationInMillis.ONE_MINUTE * 120, new JSONCategoryListener(mCategories));
所以实际响应是正常的(状态 200),但是 json 内容告诉我异常。
最佳答案
那么,你想得到什么?这是服务器的正确行为。服务器返回200,表示请求成功。但它不能保证,这不是服务器上“业务逻辑”的一些内部错误,例如无效数据或其他任何错误。
已编辑
也许您可以使用您的自定义错误处理程序:
class MyErrorHandler implements ErrorHandler {
@Override public Throwable handleError(RetrofitError cause) {
//check response on errors
}
}
在 createRestAdapterBuilder() 中:
new RestAdapter.Builder()..setErrorHandler(new MyErrorHandler());
已编辑 2
您可以在您的robospice 服务方法中实现putDataInCache(Object cacheKey, T data),并在您的监听器中检查内容中的错误,如果没有错误则将其添加到缓存中,或从缓存中移除
关于android - 发生异常时的 Robospice 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30453682/