AFN如何拿到请求失败时,服务器返回的失败数据

从项目开始到现在一直在跟踪一个问题,就是在AFN请求失败时,ios这边拿不到服务器放回的失败数据只能拿都服务器标准的请求失败的状态码.而我项目中好多处都要对请求失败时那到服务器数据

上图是正常请求失败时,打印的失败信息,无论你打印error的任何属性,或task的任何属性都拿不到服务器写死的中文的一个数据.

也问过很多朋友,他们公司的做法是只要是HTTP 请求,只要URL和填的参数的key是正确的,无任key的值是否正确,他都能请求成功,在AFN成功的block里拿到数据,从而提示用户.

但是我的项目用AFN只要请求失败都走失败的那个block,而在这block里根本就拿不到服务器数据.

我刚开始的做法是,通过失败状态码,写死数据,当被老大批了,客户那边也投诉, 因为有些状态码根本就有两种甚至多种失败解释,你用一个状态码来写死,也只能是写死一种情况.而且只要对HTTP 错误码有研究的大神都知道,HTTP错误码有几千种,你能都写的完么.

后来我尝试用苹果原生的session请求来写,发现能拿到请求失败时服务器数据,但是我HTTP好多处都用了,要改的话好麻烦,而且还要考虑性能问题,线程问题,以及别的问题. 到这里我就考虑到AFN底层是基于NSURLSession来写的一个框架, 这底层应该能拿到请求失败时的数据啊.我就想我能不能通过设置什么参数,或重写什么方法就可以拿到数据呢.

后来,被我整好了,下面是代码截图



最后就能拿到请求失败body里的数据了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,022评论 6 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,084评论 19 139
  • 1.请简单说明多线程技术的优点和缺点? 优点能适当提高程序的执行效率能适当提高资源的利用率(CPU/内存利用率) ...
    彼岸的黑色曼陀罗阅读 3,408评论 0 2
  • AFHTTPRequestOperationManager 网络传输协议UDP、TCP、Http、Socket、X...
    Carden阅读 10,564评论 0 12
  • 13.服务器图片改了,url没有变,需求,服务器的图片变了,就从服务器加载图片,如果服务器的没变,就从本地加载 1...
    AlanGe阅读 5,111评论 0 1

友情链接更多精彩内容