异常发生时的Robospice缓存

时间:2015-05-26 08:43:03

标签: android json caching robospice

我不想实现下一步。

取决于是否将数据放入Robospice Cache中的json内容。 有时,从服务器返回的数据无效。例如,我们的授权令牌会关闭。所以我们不应该缓存这种反应。

但是我无法找到可以帮助我解决这个问题的API。 以下是我现在使用请求的方式:

class Test extends ActiveRecord
{
    public static function tableName()
    {
        return '{{%test}}';
    }

    public function rules()
    {
        //....
    }

    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'first_name' => 'First Name',
            'last_name' => 'Last Name',
        ];
    }

    public function getFullName()
    {
        $fullName = $this->first_name.' '.$this->last_name;
        return $fullName;
    }
}



Test::find().with('fullName') => it doesn't work

因此实际响应是正常的(状态200),但json内容告诉我异常。

1 个答案:

答案 0 :(得分:1)

那么,你想得到什么?这是服务器的正确行为。服务器返回200,表示请求成功。但不能保证,这不是服务器上“业务逻辑”的一些内部错误,例如无效数据或其他任何内容。

<强> EDITED

可能您可以使用自定义错误处理程序:

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)中实现,并在你的监听器中检查内容中的错误,如果没有错误则将其添加到缓存中,或者从缓存中删除