【问题标题】:AFNetworking - JSONRequestOperationWithRequest success on 400 status codeAFNetworking - JSONRequestOperationWithRequest 在 400 状态码上成功
【发布时间】:2013-05-17 15:01:20
【问题描述】:

我正在使用

NSMutableURLRequest *request = [self requestWithMethod:@"GET" path:@"paths/" parameters:params];

AFJSONRequestOperation *jsonRequest = [AFJSONRequestOperation
JSONRequestOperationWithRequest:request success:^(NSURLRequest *request,
NSHTTPURLResponse *response, id JSON) {
       // something to do here in case of success
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON
{ 
      // and something there in case of failure
}

一切正常,除了在一种情况下,当我收到带有 400 状态 代码的响应和包含有关此错误的一些信息的 JSON(有效,我已检查)时,如我可以看到使用浏览器。 但是JSONRequestOperationWithRequest 调用成功块,而JSON 和响应为零。 这是什么原因造成的?

【问题讨论】:

  • 如果您收到 400 状态代码,则应调用失败块。 (我检查了 AFNetworking 源代码)
  • 实际上在其他情况下调用失败块,只有在这种情况下调用成功块

标签: iphone ios json afnetworking


【解决方案1】:

如果 requestOperation 在完成后有关联的错误,则调用失败。错误的原因包括响应的 Content-Type 不正确、没有可接受的状态代码(默认为 2XX 范围,但可以使用 AFHTTPRequestOperation +addAcceptableStatusCodes: 更改)或处理下载数据时出错。这是有保证的行为。

您可能会在 400 响应中获得 JSON 对象作为failure 块的一部分,您可能会在success 中获得nil JSON。这些都与 AFNetworking 的工作方式一致。

【讨论】:

  • 谢谢马特,我不知道
猜你喜欢
  • 2021-04-02
  • 1970-01-01
  • 2019-02-16
  • 2020-07-09
  • 2014-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-30
  • 1970-01-01
相关资源
最近更新 更多