RestKit - 如果auth超时则重复请求

时间:2014-01-31 17:00:42

标签: objective-c restkit

我正在使用.NET Web API 2服务,使用默认的“个人用户帐户”身份验证。我正在使用RestKit 0.22.0。

我的问题是,当发生会话超时时,我想让iOS应用程序使用存储的凭据重新进行身份验证,然后重播请求。我发现这样做的唯一方法是like this - 一年前问过。但是我不认为答案应该是检查状态代码是否为401,重新进行身份验证,在每个故障块中重试请求 。因为那只是很多的复制和粘贴!

有没有更好的方法来实现我想要的?

1 个答案:

答案 0 :(得分:2)

从失败块调用一个常用方法,该方法获取所需的输入。您可能希望有多种常用方法能够验证响应详细信息并自动重新启动过程(因此1对于GET,1对于POST,...)。


伪代码

- (void)do something with this info: 
{
    ... calculate method specifics then call general method ...
    [self getObjectsAtPath:urlArg parameters:p success:s];
}

- (void)getObjectsAtPath:urlArg
              parameters:p
                 success:s
{
    [RK getObjectsAtPath:urlArg
              parameters:nil
                 success:
     { -- Yay -- call success callback
       s();
     }
                 failure:
     { -- Humph -- retry
       ... do auth updates, then retry ...
       [self getObjectsAtPath:urlArg parameters:p success:s];
     }
}