如何在 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 2
或3
时代,他们以某种方式改变了场景。我现在没有找到关于如何实现它的确切解决方案。那么任何人都可以在下面的答案中编写适用于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
如何使用 AFNetworking-2.0 执行 JSON 编码的 GET 请求?