ios - 可以重试 ASIHTTPRequest 吗?

标签 ios asihttprequest

有没有办法重试 ASIHTTPRequest?我在 REST 服务中使用自定义身份验证而不是基本 HTTP 身份验证,如果 session 已过期,我想重试请求。第二次对请求调用 startAsynchronous 会导致异常。我想做这样的事情:

[request setCompletionBlock:^{
        if ([request responseStatusCode] == 500)
        {
            // try to login again in case token expired
            [server loginAndRetryRequest:request];
        } else {
            // parse response
        }
    }];

loginAndRetryRequest:将执行另一个 ASIHTTPRequest 以登录,当它完成时,它将从它的 CompletionBlock 再次启动原始请求(假设这是可能的)?

最佳答案

应该可以复制请求,然后在副本上再次执行 -startAsynchronous

在 1.5 版中添加了对 NSCopying 协议(protocol)的支持,其中还包括超时时的自动重试(选择器 -setNumberOfTimesToRetryOnTimeout:

另一个选项可能是检查他们的源代码以查看在超时的情况下自动重试是如何完成的,但是复制和重新发出请求应该可以工作(这就是首先添加对 NSCopying 的支持的原因)。

关于ios - 可以重试 ASIHTTPRequest 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6062178/

相关文章:

php - 虚拟卡Dav 服务器

objective-c - 获取UIAlertView以响应键盘上的返回,并具有与“确定”按钮相同的结果

iphone - 为什么当另一个线程正在运行时 NSTimer 会被阻塞?

iphone - 在 _one_ ASIHTTPRequest 中流式传输多个文件

ios - [ios & cloud]iOS开发的云存储服务?

ios - 如何将商店中的 iOS 应用程序限制为仅限 4S 和 iPad 3

objective-c - 将大小设置为自定义 iOS 字体不起作用

ios - Firebase 云消息传递适用于控制台,但不适用于 FCM api

iphone - 什么是 ASIHTTPRequest?

ios - 在 iOS 上从 ASIHTTPRequest 转换为 AFNetworking