ios - AFNetworking - 序列化连接

标签 ios grails afnetworking

我使用 AFNetworking 作为我的应用程序的连接库。由于后端限制,我无法在应用程序启动时同时发送两个请求,因为服务器会识别出 CookieTheftException (Grails)。第一次成功连接后,我可以根据需要同时执行多个请求,但第一个请求必须是串行的。 我怎样才能做到这一点?

我想使用信号量,但我不能阻塞主线程。

编辑 1

我试图覆盖但没有成功。我认为操作队列不会等待一个请求完成(包括它的回调)来启动另一个请求。

- (void)enqueueHTTPRequestOperation:(AFHTTPRequestOperation *)operation
{
    [self.operationQueue setMaxConcurrentOperationCount:1];
    [super enqueueHTTPRequestOperation:operation];
}

编辑2

我意识到 maxConcurrentOperation 起作用了,实际上一次执行了 1 个操作。问题是排队的请求已经在没有服务器需要的 cookie 的情况下创建。

最佳答案

我对 Grails 或您系统的特定架构一无所知,但也许这可以通过使用 NSMutableURLRequest -setHTTPShouldHandleCookies: 简单地关闭该请求的 cookie 来解决。

除此之外,确保初始调用只运行一个请求操作的最佳方法是完全忽略队列,并在 AFHTTPClient 上简单地设置一个 AFHTTPRequestOperation 属性 子类。您甚至可以使用 KVO 来确保在初始请求完成之前暂停操作队列。

关于ios - AFNetworking - 序列化连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14387535/

相关文章:

iphone - 如何计算iOS中两个日期之间的时间(以小时为单位)

ios - collectionview admob ios 中的横幅广告

grails - grails 3.x中grails 2.x的Config.groovy对应的神器是什么?

grails - 过滤器中的渲染 GSP 不起作用

grails - Jqgrid破坏了其他jqgrid的属性

ios - AFNetworking 阻止 UI

iphone - 获取不同ViewController的下载进度

ios - 有时会显示加载 uiwebview ios 时的背景图像

ios - iOS未授权的网络连接(401)

ios - 当文本字段放弃第一响应者时, ScrollView 内容返回到原始位置