我想打包AFNetworking,以便网址可以逐个请求,但不知道如何打包它。 例如,有三个url请求想要发送到服务器,我希望首先通过AFNetworking发送一个url请求,当第一个请求完成时,然后将下一个请求发送到服务器,依此类推。 我认为可能需要NSOperationQueue来完成这项工作,但我不知道如何实现它。 有人写过这样的代码吗?你能给我.h和.m文件给我,这样我就可以建模或直接使用,非常感谢。
答案 0 :(得分:1)
如果要发送图像或诸如此类的数据,您可能需要这样的东西。如果您只是发送简单请求,那么只需使用事实AFNetworking GET / POST而不是multipartFormRequestWithMethod
。
简而言之,为每个请求创建一个操作,并将每个请求添加到一个数组中。然后使用batchOfRequestOperations
执行每个操作。 (From the docs)。
NSMutableArray *mutableOperations = [NSMutableArray array];
for (NSURL *fileURL in filesToUpload) {
NSURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://example.com/upload" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileURL:fileURL name:@"images[]" error:nil];
}];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[mutableOperations addObject:operation];
}
NSArray *operations = [AFURLConnectionOperation batchOfRequestOperations:mutableOperations progressBlock:^(NSUInteger numberOfFinishedOperations, NSUInteger totalNumberOfOperations) {
NSLog(@"%lu of %lu complete", numberOfFinishedOperations, totalNumberOfOperations);
} completionBlock:^(NSArray *operations) {
NSLog(@"All operations in batch complete");
}];
[[NSOperationQueue mainQueue] addOperations:operations waitUntilFinished:NO];