有没有办法重试ASIHTTPRequest?我在REST服务中使用自定义身份验证而不是基本HTTP身份验证,如果会话已过期,我想重试请求。在请求上第二次调用startAsynchronous会导致异常。我想做这样的事情:
[request setCompletionBlock:^{
if ([request responseStatusCode] == 500)
{
// try to login again in case token expired
[server loginAndRetryRequest:request];
} else {
// parse response
}
}];
loginAndRetryRequest:将执行另一个ASIHTTPRequest登录,当它完成后,它将再次从它的CompletionBlock启动原始请求(假设这可能以某种方式)?
答案 0 :(得分:5)
应该可以复制请求,然后在副本上再次执行-startAsynchronous
。
在版本1.5中添加了对NSCopying协议的支持,其中还包括超时情况下的自动重试(选择器-setNumberOfTimesToRetryOnTimeout:
。
另一个选项可能是检查他们的源代码,以查看在超时的情况下如何完成自动重试,但复制和重新发出请求应该有效(这是首先添加对NSCopying的支持的原因)。