AFJSONRequestOperation 响应延迟

Posted

技术标签:

【中文标题】AFJSONRequestOperation 响应延迟【英文标题】:AFJSONRequestOperation delay in response 【发布时间】:2012-04-03 08:45:58 【问题描述】:

AFNetworking 的请求:

  NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    [queue setMaxConcurrentOperationCount:1];
    [queue addOperation:request1];
    [queue addOperation:request2];

request1 在调用它后立即得到响应。 但是第二个 request2 在调用它后收到延迟 14 或 16 秒的响应。

服务器日志显示 request2 与客户端时间相比延迟了 14-16 秒。它立即响应。所以服务器应该是正确的。

可能是什么?

【问题讨论】:

使用 wireshark 或 charlesproxy 捕捉正在发生的事情,这可能会提供线索。 【参考方案1】:

您将maxConcurrentOperationCount 设置为 1 有效地使您的队列串行。这意味着任何时候只运行一个操作。

第一个操作(request1)可能需要 14-16 秒。

如果你想同时运行两个请求,增加maxConcurrentOperationCount

【讨论】:

它没有帮助。请求应按顺序执行。第一反应以毫秒为单位。 @phantom.dnepr 如果您需要顺序运行请求,您应该使用NSOperation 依赖项,或者在第一个完成块中创建第二个操作。无论哪种方式,都需要更多信息来了解正在发生的事情,以便为您提供帮助。描述请求是什么,响应的日志,诸如此类。

以上是关于AFJSONRequestOperation 响应延迟的主要内容,如果未能解决你的问题,请参考以下文章

如何在AFJSONRequestOperation的回调中从NSHTTPURLResponse中获取响应数据?

在 AFJSONRequestOperation 中接受无效的 JSON?

如何从 AFNetworking 和 AFJSONRequestOperation 获得可变字典?

使用 AFJSONRequestOperation 返回 JSON

未知类型名称 AFJSONRequestOperation

AFJSONRequestOperation 不更新块外的内容