AFNetworking 2.0 - 处理错误返回状态码200

时间:2014-10-20 11:39:44

标签: ios afnetworking-2

我正在连接到一个API,当返回错误时将返回以下内容:

{
  "success": false,
  "reason": "Could not authenticate successfully with given credentials",
  "errorCode": "invalidCredentials"
}

它有Content-Type application/json;charset=UTF-8Status Code 200

目前,当我进行网络呼叫时,我的成功块必须弄清楚它是否得到了实际的成功响应或上述错误。然而,如果它得到如上所述的响应(其中success = false),是否有可能让它调用失败块?

注意:所有错误回复的格式与上面的successreasonerrorCode字段相同。

如果需要,我可以提供一些AFNetworking代码,但我真的只是在寻找一些如何做到这一点的指针(也许是小代码示例)。

2 个答案:

答案 0 :(得分:0)

您可以继承AFHTTPResponseSerializer并实施validateResponse:data:error:来检查回复。

使用自定义AFHTTPResponseSerializer时要小心。使用不一致的Web-API时出现问题(我发现很多)。您需要在代码中解决某处中的这些不一致问题。 AFHTTPResponseSerializer在代码中引入了另一层抽象,在决定如何解决不一致问题时会使事情变得复杂。

答案 1 :(得分:0)

您可以继承AFHTTPRequestOperationManager类并覆盖其GET / POST方法,以便成功块已经处理了预定义的格式。