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].operationQueue
并start
它。
现在你明白这基本上是所有的一起工作,这是一个更简单的方法:
- 子类
AFHTTPRequestOperationManager
,可选地设置requestSerializer
如果你不喜欢默认 - 覆盖(或复制新的实现)
-POST:parameters:constructingBodyWithBlock:success:failure:]
– 你想要做的不是马上start
你的操作。 - 设置NSOperation依赖链
-
start
第一个