我使用 AFNetworking 作为我的应用程序的连接库。由于后端限制,我无法在应用启动时同时发送两个请求,因为服务器会识别出 CookieTheftException (Grails)。在第一次成功连接后,我可以同时请求尽可能多的请求,但第一个请求必须是串行的。我怎样才能做到这一点?
我想使用信号量,但我不能阻止主线程。
编辑 1
我试图覆盖,但没有奏效。我认为操作队列不会等待一个请求完成(包括它的回调)来启动另一个请求。
- (void)enqueueHTTPRequestOperation:(AFHTTPRequestOperation *)operation
{
[self.operationQueue setMaxConcurrentOperationCount:1];
[super enqueueHTTPRequestOperation:operation];
}
编辑 2
我意识到 maxConcurrentOperation 有效,实际上一次执行 1 个操作。问题是已经在没有服务器需要的 cookie 的情况下创建了排队的请求。