AFNetworking 2 - 请求失败时没有响应正文

问题描述 投票:0回答:1

我正在将 AFNetworking 2 用于使用 REST API 的 iOS 项目。当请求失败时,我无法获得正文响应。

我看过这个SO答案,说它可以从

userInfo
字典中检索。不幸的是,就我而言,我没有在
NSLocalizedRecoverySuggestion
字典中获得带有响应正文的
userInfo
键值。相反,我看到了一个
AFNetworkingOperationFailingURLResponseErrorKey
键。

我的

NSError
日志是

Error Domain=AFNetworkingErrorDomain Code=-1011 "Request failed: bad request (400)" UserInfo=0xbe471a0 {NSErrorFailingURLKey=http://***.com/api/users, AFNetworkingOperationFailingURLResponseErrorKey=<NSHTTPURLResponse: 0xbc60e80> { URL: http://***.com/api/users } { status code: 400, headers {
    Connection = "keep-alive";
    "Content-Length" = 85;
    "Content-Type" = "application/json; charset=utf-8";
    Date = "Thu, 24 Apr 2014 21:36:57 GMT";
    "X-Powered-By" = Express;
} }, NSLocalizedDescription=Request failed: bad request (400)}

正如您从标题中看到的,我得到了

"Content-Type" = "application/json; charset=utf-8";
,因此其他 answer 也不适用。

实际上Postman中的身体反应是这样的:

{"errorCode":100,"description":"There is already a registered user with that email."}

后端是我自己用Node + Express实现的。不过,我在后端开发方面经验不是很丰富,所以也许我缺少一些东西或者我可以改变一些东西。

有谁知道为什么我没有在

userInfo
中收到响应正文?

ios objective-c express afnetworking-2
1个回答
3
投票

引用 AFNetworking 所有者:

(...) 推荐的方法是创建一个自定义响应序列化器,将失败情况下的响应数据适当地转换为 NSError 对象。

您可以在另一个 AFNetworking 问题上查看此答案,了解如何将其与会话管理器集成,以及此存储库了解如何实现它。

© www.soinside.com 2019 - 2024. All rights reserved.