AFNetworking可以处理请求队列吗?

我在iOS 6上的例子:

  • 需要将10个多部分请求(按顺序)发送到服务器。 (所以请求形成一个队列)
  • 应该显示进展。
  • 如果一个请求失败,所有后续应该失败
  • 一个请求队列应该是可以取消的

AFNetworking能帮助我吗? 或者我应该尝试使用NSOperations构build一些东西,然后自己运行这些循环?

如果我需要在这些请求之间传递上下文数据,例如第一个请求产生的事务id。 有没有我需要考虑的线程可见性的任何考虑?

AFNetworking可以做到这一点。 我build议你使用AFHTTPRequestOperationManager(它本身使用NSOperation),而不是AFHTTPSessionManager。 有一些方法可以用AFHTTPSessionManager来完成,但没有一个像操作一样优雅。

在引擎盖下,没有pipe理者,你会做什么:

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

一旦你有一个URL请求,使用[AFHTTPRequestOperation -initWithRequest:] 。 你也应该设置完成块。

最后,将您的操作添加到[AFHTTPRequestOperationManager manager].operationQueuestart它。


现在你明白这基本上是所有的一起工作,这是一个更简单的方法:

  • 子类AFHTTPRequestOperationManager ,可选地设置requestSerializer如果你不喜欢默认
  • 覆盖(或复制新的实现) -POST:parameters:constructingBodyWithBlock:success:failure:] – 你想要做的不是马上start你的操作。
  • 设置NSOperation依赖链
  • start第一个