android - 发生异常时的 Robospice 缓存

标签 android json caching robospice

我不想达到下一个目标。

取决于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/

相关文章:

android - `theme`中的 `context.getColor`有什么用?

android - 开展不同的 Activity

java - 为什么内存使用率这么高?

javascript - 本地存储中未定义的键和空值

php - 使用 laravel 5 将大型结果集存储在缓存/redis 中

android - 使用 REST API 验证用户凭据?

c# - 循环动态 JSON 以获取所有节点 C#

Android volley 如何接收和发送一个 json

php - 即使不再引用文件,Assetic 文件不存在错误?

R Shiny - 缓存大数据帧