AFNetworking 2 AFHTTPRequest操作失败阻止从错误用户信息中剥离密钥



>我刚刚将我的应用程序从AFNetworking 1.3.3更新到2.0.1,这需要重写我曾经子类AFHTTPClient的网络客户端。

我将AFHTTPClient换成了AFHTTRequestOperationManager(我需要支持iOS 6),除此之外一切正常:

服务器给了我一个 JSON 错误字符串,其中包含错误的详细信息:error.userInfo.localizedRecoveryAdvice

但是,此键(localizedRecoverySuggestion)不再在我的NSError对象中。

有人知道我如何访问它吗?或者AFNetworking的哪一部分正在剥离它?服务器仍在发送它,它只是没有将其作为我的 POST: 等方法中的错误对象。

花了一些时间在这上面,我正在努力找到问题所在。

经过一段时间的调试后,看起来数据通过AFNetworking采取以下路径:

  1. AFURLConnectionManager connection:didReceiveData:
  2. AFURLResponseSerialization validateResponse:data:error:

此时它被扔掉了。

因此,作为快速修复,我只是在该方法中添加了一个额外的字典条目,其中创建了userInfo,如下所示:

NSLocalizedRecoverySuggestionErrorKey: [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]

这显然是一个完整的黑客,但如果有人能给出如何正确完成此操作的指示,我将不胜感激。

相关内容

最新更新