AFNetworking 可以处理请求队列吗?

2024-04-27

我在 iOS 6 上的示例:

  • 需要(按顺序)向服务器发送 10 个 Multi-Part 请求。 (所以请求形成一个队列)
  • 应显示进展情况。
  • 如果一个请求失败,则所有后续请求都会失败
  • 请求队列应该是可取消的

AFNetworking 可以帮我解决这个问题吗?或者我应该尝试使用 NSOperations 构建一些东西并自己运行循环?

如果我需要在这些请求之间传递上下文数据,例如第一个请求生成的事务 ID。我需要考虑关于线程可见性的任何注意事项吗?


AFNetworking 可以做到这一点。我建议您使用 AFHTTPRequestOperationManager (它本身使用 NSOperation),而不是 AFHTTPSessionManager。有多种方法可以使用 AFHTTPSessionManager 来完成此操作,但没有一种方法像操作那样优雅。

在幕后,如果没有经理,您将执行以下操作:

您将使用请求序列化器来制作 NSMutableURLRequest (例如,[AFHTTPRequestSerializer -multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:error:];还有一个类似的 JSON 请求序列化器)。

获得 URL 请求后,使用以下命令进行操作[AFHTTPRequestOperation -initWithRequest:]。您还应该设置其完成块。

最后,将您的操作添加到[AFHTTPRequestOperationManager manager].operationQueue and start it.


现在您已经了解了这基本上是如何协同工作的,这是一种更简单的方法:

  • 子类AFHTTPRequestOperationManager,可选地设置requestSerializer如果你不喜欢默认的
  • 覆盖(或复制新的实现)-POST:parameters:constructingBodyWithBlock:success:failure:]- 你想做的不是start立即进行操作。
  • 设置 NSOperation 依赖链
  • start第一个
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AFNetworking 可以处理请求队列吗? 的相关文章

随机推荐