首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AFHTTPRequestOperation同步请求

AFHTTPRequestOperation同步请求
EN

Stack Overflow用户
提问于 2013-11-08 06:56:18
回答 2查看 1.3K关注 0票数 0

我有这样一种情况,我需要向服务器发出多个请求,其中后续请求将依赖于前一个请求

代码语言:javascript
复制
1) request 1
2) process data
3) request 2 based on data in step 2
4) process data

对于AFNetworking 2来说,实现这一点的最佳方法是什么

EN

回答 2

Stack Overflow用户

发布于 2013-11-08 08:53:31

在第一个请求的完成处理程序中调用第二个请求。下面是一些示例代码:

代码语言:javascript
复制
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:@"http://example.com/resources.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON Response 1: %@", responseObject);

    // Process data here, and use it to set parameters or change the url for request2 below

    [manager GET:@"http://example.com/request2.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
      NSLog(@"JSON Response 2: %@", responseObject);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
      NSLog(@"Error 2: %@", error);
    }];
  } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error 1: %@", error);
}];
票数 1
EN

Stack Overflow用户

发布于 2014-09-01 07:35:33

我做了一个尝试,最终实现了我自己的完成块和失败块,这样通过向AFHTTPRequestOperation类添加一个类别,它们就可以作为请求操作在某个线程上执行

代码语言:javascript
复制
- (void)startAndWaitWithSuccess:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
                        failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
{
    [self start];
    [super waitUntilFinished];

    id responseObject = self.responseObject; // need this line for AFNetworking to create error;

    if (self.error) {
        if (failure) failure(self, self.error);
    } else {
        if (success) success(self, responseObject);
    }
}

操作将开始,然后阻塞线程,直到操作完成。然后根据成功或失败,在完成操作之前调用相应的块。

这样,我可以一个接一个地链接多个请求操作,完成块将拥有来自前一个请求完成块的已处理数据

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19848415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档