我在 iOS 6 上的示例:
- 需要将 10 个多部分请求(按顺序)发送到服务器。 (所以请求形成一个队列)
- 应显示进度。
- 如果一个请求失败,所有后续请求都应该失败
- 请求队列应该是可取消的
AFNetworking 可以帮我解决这个问题吗?或者我应该尝试使用 NSOperations 构建一些东西并自己运行循环?
如果我需要在这些请求之间传递上下文数据,例如第一个请求生成的事务 ID。我需要考虑有关线程可见性的任何注意事项吗?
最佳答案
AFNetworking 可以做到这一点。我建议您使用 AFHTTPRequestOperationManager(它本身使用 NSOperation),而不是 AFHTTPSessionManager。使用 AFHTTPSessionManager 有多种方法可以做到这一点,但没有一种方法像操作那样优雅。
在幕后,如果没有经理,您会做以下事情:
您将使用请求序列化器来生成 NSMutableURLRequest(例如,[AFHTTPRequestSerializer -multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:error:]
;也有类似的 JSON 请求序列化器)。
获得 URL 请求后,使用 [AFHTTPRequestOperation -initWithRequest:]
进行操作。您还应该设置它的完成 block 。
最后,将您的操作添加到[AFHTTPRequestOperationManager manager].operationQueue
并启动
。
现在您已经了解这基本上是如何协同工作的,下面是一个更简单的方法:
- 子类
AFHTTPRequestOperationManager
,如果您不喜欢默认值,可以选择设置requestSerializer
- 覆盖(或使用新实现复制)
-POST:parameters:constructingBodyWithBlock:success:failure:]
- 你想要做的不是立即开始
你的操作. - 设置 NSOperation 依赖链
开始
第一个
关于ios - AFNetworking 可以处理请求队列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22088186/