我有一个你可以想象的项目就像Facebook应用程序一样,我很难掌握如何使用RestKit组织它并处理令牌,因为我是一名RestKit初学者。
这是我到目前为止所得到的:
如果您有组织建议,但我的主要问题是如何在收到401 HTTP状态代码并使用新令牌再次触发失败的请求后实现自动令牌刷新?
我开始重写我的RKObjectRequestOperation子类中的metod:
- (void)setCompletionBlockWithSuccess:(void ( ^ ) ( RKObjectRequestOperation *operation , RKMappingResult *mappingResult ))success
failure:(void ( ^ ) ( RKObjectRequestOperation *operation , NSError *error ))failure
所以现在我可以拦截一个401响应,但现在我必须再次调用刷新令牌,然后用新令牌重新排队失败的操作,请告知如何做到这一点。
答案 0 :(得分:3)
如果您使用对象管理器,我通常不会使用自定义RKObjectRequestOperation
。我会在对象管理器级别处理它。
在对象管理器中,您可以覆盖每个主要请求方法(随成功和失败块提供)。您可以实现这些方法来调用super
,但用新版本替换成功和失败块,在调用提供的版本之前添加一些逻辑。
现在,附加逻辑将检查响应状态。如果它显示需要令牌刷新,则可以对其进行操作,然后对象管理器可以使用第一个请求中提供的参数触发新的加载。
此外,除非文档声明支持该操作,否则不应重新排队操作,因为某些操作在第二次执行时将无法运行...