我刚刚将我的应用程序从 AFNetworking 1.3.3 更新到 2.0.1,这需要重写用于子类化 AFHTTPClient 的网络客户端。
我将 AFHTTPClient 换成 AFHTTRequestOperationManager(我需要支持 iOS 6),除此之外一切正常:
服务器给我一个 JSON 错误字符串,其中包含错误的详细信息: error.userInfo.localizedRecoverySuggestion
但是,这个键 (localizedRecoverySuggestion) 不再在我的 NSError 对象中。
有人知道我如何访问它吗?或者 AFNetworking 的哪一部分正在剥离它?服务器仍在发送它,它只是没有像我的 POST: 等方法中的错误对象一样。
我已经在这上面花了一些时间,但我正在努力寻找问题所在。
最佳答案
经过一些调试后,数据似乎通过 AFNetworking 采用以下路径:
- AFURLConnectionManager 连接:didReceiveData:
- AFURLResponseSerialization validateResponse:data:error:
此时它被丢弃。
因此,作为快速修复,我只是在该方法中添加了一个额外的字典条目,其中 userInfo 的创建方式如下:
NSLocalizedRecoverySuggestionErrorKey: [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]
这显然是一个完整的 hack,但如果有人可以提供有关如何正确完成此操作的指示,我将不胜感激。
关于ios - AFNetworking 2 AFHTTPRequestOperation 失败 block 从错误 userInfo 中剥离 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19574539/