AFNetworking 和网络错误
Posted
技术标签:
【中文标题】AFNetworking 和网络错误【英文标题】:AFNetworking and Network Errors 【发布时间】:2012-07-04 19:02:53 【问题描述】:我正在使用AFNetworking
框架发出几个 JSON 网络请求。
在开发过程中,如果我未能提供所需的参数或服务开发人员破坏了某些东西 :-) 我会收到 500 error
AFJSONRequestOperation
的错误块正确捕获它。但是我看不到页面正文,因为AfNetworking
在收到头部错误代码后立即取消请求。
是否有一些解决方法。我想将响应正文吐到日志中。
【问题讨论】:
【参考方案1】:使用传递到失败块的操作中的responseData
或responseString
属性。
【讨论】:
在 AFHTTPRequestOperation 类中找不到这些属性之一 Mattt's 真的应该是这里公认的答案。永远不应将“500”响应视为成功。此外,为了回答您的问题 LeonS,responseData
属性在 AFURLRequestOperation
中声明,AFHTTPRequestOperation
是基于该属性的。
请注意,AFURLRequestOperation 头文件不是随 AFHTTPClient 一起导入的。这意味着您必须在访问操作对象的属性之前导入头文件。
AFHTTPRequestOperation
现在是AFURLConnectionOperation
的子类,因为AFURLRequestOperation
似乎已经过时(不过我还没有查看历史记录)。 responseData
还在。【参考方案2】:
您需要将 http 代码 500 添加到可接受的状态代码中,并在成功回调中对其进行过滤。在那里你会有一个 responseObject。
【讨论】:
这是不可取的——请不要这样做。 AFNetworking 区分了success
和failure
回调;如果要记录响应的内容,可以在失败回调中使用响应对象的responseData
或responseString
来获取。以上是关于AFNetworking 和网络错误的主要内容,如果未能解决你的问题,请参考以下文章
网络连接丢失错误仅在带有 AFNetworking 的 iOS7 上