在 AFNetworking 2 的失败块中访问 JSON 响应
Posted
技术标签:
【中文标题】在 AFNetworking 2 的失败块中访问 JSON 响应【英文标题】:Accessing the JSON response in the failure block of AFNetworking 2 【发布时间】:2013-12-03 18:13:29 【问题描述】:使用 AFNetworking 2,当您在故障块中处理故障时,您如何访问从服务器返回的内容?在我的情况下,我发布到一个正在返回的 Rails 应用程序:
"number":["已被占用"]
如果我像这样使用 curl,我会得到这样的结果:curl -X POST -d "sales_order[number]=12345" http://localserver.dev/api/v1/sales_orders.json
我试图在 AFNetworking 2 中获取相同的 JSON。在通读 SO 之后,我设法通过检查失败块内的 [error userInfo] 来访问一些响应标头信息。
有谁知道我如何从故障块内部访问 "number":["is already taken"]?
这是我目前的块:
failure:^(NSURLSessionDataTask *task, NSError *error)
NSLog(@"Sales Order Failure");
NSDictionary *userInfo = [error userInfo];
for(NSString *key in [userInfo allKeys])
NSLog(@"%@ - %@", key, [userInfo objectForKey:key]);
];
【问题讨论】:
【参考方案1】:这是 AFNetworking 2.x 中的一个已知设计缺陷,已在 here 进行了讨论并提供了一些解决方法。
【讨论】:
以上是关于在 AFNetworking 2 的失败块中访问 JSON 响应的主要内容,如果未能解决你的问题,请参考以下文章
AFNetworking 2.0 从故障块中的代码 400 获取 JSON
为啥这个 AFNetworking 块中的变量都显示为 nil(快速)?
将块中异步接收的 JSON 对象传递给实例变量 - 在 iOS6 上使用 AFNetworking