我不想实现下一步。
取决于是否将数据放入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内容告诉我异常。
答案 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)中实现,并在你的监听器中检查内容中的错误,如果没有错误则将其添加到缓存中,或者从缓存中删除