ios - RestKit:重新验证后如何重新提交失败的请求?

标签 ios restkit

我正在开发的 API 要求我在自定义 HTTP header 中提供身份验证 token 。该 token 每隔几分钟就会过期,并且只要用户闲置足够长的时间,该 token 就可能在用户仍在应用程序内时过期。当 token 过期时,我收到 403 响应,但只有在尝试请求后才发现。

让 RestKit 自动重新验证并重试请求的最佳方法是什么,这样我就不必在发出请求的任何地方都放入此逻辑?对类似问题的回答建议使用 RKRequestDelegate 协议(protocol)或 RKObjectLoaderDelegate 协议(protocol),但不幸的是,这些不再是 RestKit 的一部分(从 0.20 开始)。

知道现在“正确”的方法应该是什么吗?我应该子类化 RKObjectManager 并对每个请求操作进行重试,还是应该提供自定义 HTTPOperation 或 HTTPClient 类,或者是否有更好的方法?谢谢!

最佳答案

在 Failure block 中捕获它,并检查状态码并重新进行身份验证

    RKObjectRequestOperation *requestOp = [[RKObjectRequestOperation alloc] initWithRequest:request responseDescriptors:@[getObjResp]];

            [requestOp setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
                ....
                }
            } failure:^(RKObjectRequestOperation *operation, NSError *error){
// Here your status code check                
// Here your retry-code
                }

关于ios - RestKit:重新验证后如何重新提交失败的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14154755/

相关文章:

iOS CIImage 拉伸(stretch)图像

ios5 - RestKit loadObjectsAtResourcePath :delegate works once, 但以后再也不会

objective-c - Restkit 加载的嵌套核心数据实体导致 NSObjectInaccessibleException

ios - Restkit - 通过外键进行核心数据一对一关系映射

ios - 将RKObjectRequestOperation子类化以检查错误时,如何重试失败的操作?

ios - 集成 flurry ads 5.0.0 的架构错误 : undefined symbol for architecture i386

ios - 使用 PageController 快速移动到下一个 ViewMontroller

iOS REST 设计模式建议

ios - 无法将类型 '[PHAsset]' 的值分配给类型 'UIImageView!'

ios - 在Restkit中设置映射的rootkeypath