如何在 AFNetworking 2 中执行 AFHTTPRequestOperation

Posted

技术标签:

【中文标题】如何在 AFNetworking 2 中执行 AFHTTPRequestOperation【英文标题】:How to perform AFHTTPRequestOperation in AFNetworking 2 【发布时间】:2016-08-07 18:36:55 【问题描述】:

我在以前的一些应用程序中多次使用AFNetworking 实现JSON解析:

    NSString *string = [NSString stringWithFormat:@"%@?get_all_data", BaseURLString];
        NSURL *url = [NSURL URLWithString:string];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
    operation.responseSerializer = [AFJSONResponseSerializer serializer];

    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject)
     
//performing parsing here

      failure:^(AFHTTPRequestOperation *operation, NSError *error) 
//error message displayed here

但是从今天开始,我开始开发一个应用程序,一段时间后我又开始使用AFNetworking,并使用pods 安装,所以当我编写与以前编写的代码相同的代码时,它给了我错误说Unknown Receiver AFHTTPRequestOperation. Do you mean AFHTTPRequestSerializer? 经过搜索,我发现现在是AFNetworking 23 时代,他们以某种方式改变了场景。我现在没有找到关于如何实现它的确切解决方案。那么任何人都可以在下面的答案中编写适用于AFNetworking 最新版本的代码。

【问题讨论】:

从版本 3.x 开始,afnetwroking 使用自己的队列来管理操作,因此您不需要使用 AFHTTPRequestOperation 您可以将 ws 称为 @MedAmine.Rihane 帖子 【参考方案1】:

这是AFNetworking 3.x解析数据的新方法:

NSString *path = @"yourapilink";
NSString *escapedPath = [path stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

[manager GET:escapedPath  parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) 
    NSLog(@"JSON: %@", responseObject);
 failure:^(NSURLSessionTask *operation, NSError *error) 
    NSLog(@"Error: %@", error);
];

希望对您有所帮助!

【讨论】:

以上是关于如何在 AFNetworking 2 中执行 AFHTTPRequestOperation的主要内容,如果未能解决你的问题,请参考以下文章

当 Af Networking 2.2 发布到 Zend 1.10 'isPost' 时,它返回 false

IOS 开发 网络详解--- AF3.0使用

如何使用 AFNetworking-2.0 执行 JSON 编码的 GET 请求?

如何使用 AFNetworking 2.0 下载文件

如何使我收到可以解析的 NSDictionary 的 AFNetworking “responseObject”?

如何使用 AFNetworking 2.0 处理 Parse.com Rest API 错误