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