Ios AFNetworking可以处理请求队列吗?
我在iOS 6上的示例:Ios AFNetworking可以处理请求队列吗?,ios,ios7,afnetworking,afnetworking-2,Ios,Ios7,Afnetworking,Afnetworking 2,我在iOS 6上的示例: 需要(按顺序)向服务器发送10个多部分请求。 (因此请求形成一个队列) 应该显示出进展 如果一个请求失败,则所有后续请求都将失败 请求队列应该是可取消的 你能帮我吗?或者我应该尝试用NSO操作构建一些东西并自己运行循环 如果我需要在这些请求之间传递上下文数据,例如第一个请求生成的事务id。关于线程可见性需要考虑什么? < P>网络可以做到这一点。我建议您使用AFHTTPRequestOperationManager(它本身使用NSOperation),而不是AFHT
- 需要(按顺序)向服务器发送10个多部分请求。 (因此请求形成一个队列)
- 应该显示出进展
- 如果一个请求失败,则所有后续请求都将失败
- 请求队列应该是可取消的
如果我需要在这些请求之间传递上下文数据,例如第一个请求生成的事务id。关于线程可见性需要考虑什么? < P>网络可以做到这一点。我建议您使用AFHTTPRequestOperationManager(它本身使用NSOperation),而不是AFHTTPSessionManager。使用AFHTTPSessionManager有很多方法可以做到这一点,但没有一种方法比操作更优雅 在引擎盖下,没有经理你会怎么做: 您将使用请求序列化程序生成NSMutableURLRequest(例如,
[AFHTTPRequestSerializer-multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:error:
;还有一个类似的JSON请求序列化程序)
有URL请求后,使用[AFHTTPRequestOperation-initWithRequest:][/code>进行操作。您还应该设置其完成块
最后,将您的操作添加到[AFHTTPRequestOperationManager].operationQueue
和启动它
现在,您了解了这些基本上是如何协同工作的,下面是一个更简单的方法:
- 子类
AFHTTPRequestOperationManager
,如果不喜欢默认值,可以选择设置requestSerializer
- 覆盖(或使用新实现进行复制)
-POST:parameters:constructingBodyWithBlock:success:failure:
-您要做的不是立即开始操作
- 设置NSO操作依赖关系链
开始
第一个
因此,如果我设置[AFHTTPRequestOperationManager manager].operationQueue setMaxConcurrentOperationCount:1,我甚至不需要NSOperation链。是的,假设您以正确的顺序将它们添加到队列中。这在使用AFNetworking 3.0时可能也很有帮助:您需要将AFHTTPSessionManager子类化,而无需将MaxConcurrentOperationCount设置为1,因为它已设置为默认值1。祝你好运。@OhadM在我的应用程序中,需要一次缓存10个文档。如何在没有操作队列的情况下使用AFNetworking 3.0缓存所有文档?