AFNetworking 在失败块中获取 responseObject

Posted

技术标签:

【中文标题】AFNetworking 在失败块中获取 responseObject【英文标题】:AFNetworking get responseObject in failure block 【发布时间】:2015-06-26 10:53:41 【问题描述】:

我是GET来自服务器的json数据,但是json数据有一个换行符“\n”,所以我得到了错误:

Error Domain=NSCocoaErrorDomain Code=3840 "无法执行该操作 完全的。 (Cocoa 错误 3840。)”(周围未转义的控制字符 字符 2333.) UserInfo=0x7fa054a02ab0 NSDebugDescription=未转义 字符 2333 周围的控制字符。

所以我想找到损坏的 json 数据在哪里,先对其进行转义,然后再对其进行解析。但是我找不到响应数据在哪里。

有什么帮助吗?

已编辑

            if let d = error.userInfo  
                    println(d)
         println(d[AFNetworkingOperationFailingURLResponseDataErrorKey])
                

我在失败块中尝试过这个,d[AFNetworkingOperationFailingURLResponseDataErrorKey] prints nil

【问题讨论】:

【参考方案1】:

可以从失败块的NSError中获取响应数据:

NSData *errorData = [error.userInfo objectForKey:AFNetworkingOperationFailingURLResponseDataErrorKey];

由此,您可以将其转换为 NSString 或其他任何您需要对其进行转义并进行适当处理的东西。

【讨论】:

以上是关于AFNetworking 在失败块中获取 responseObject的主要内容,如果未能解决你的问题,请参考以下文章

AFNetworking 2.0 从故障块中的代码 400 获取 JSON

以 JSON 字符串数组形式获取 AFNetworking 响应的结果

在故障块 AFNetworking 3.0 上获取 responseObject

为啥这个 AFNetworking 块中的变量都显示为 nil(快速)?

将块中异步接收的 JSON 对象传递给实例变量 - 在 iOS6 上使用 AFNetworking

有没有一种简单的方法可以从 AFHTTPClient 获取失败块中的 http 状态代码?