AFN解析器里的坑
Posted 一米王子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AFN解析器里的坑相关的知识,希望对你有一定的参考价值。
AFN框架是用来用来发送网络请求的,它的好处是可以自动给你解析JSON数据,还可以发送带参数的请求
AFN框架还可以监测当前的网络状态,还支持HTTPS请求,分别对用的类为AFNetworkReachabilityManager,AFSecurityPolicy
虽然AFN可以发送请求,但是里面有许多坑,
1.你想要得到正确的JSON数据必须要:网络请求成功,服务器返回的必须是JSON 数据,自己(AFN)还能够解析,也就是说你发送的请求,返回的数据类型必须是JSON数据,而且必须以JSON结尾的数据,必须奥,因为解析器认识的数据类型只有,application/json, text/json, text/javascript
2.AFN有三种类型的解析器,默认的是JSON解析器,还有万能的解析器,说是万能就是什么也做不了,因为它把所有的数据都返回为二进制数据,还得自己解析。
3.最让人头疼的就是解析XML数据了,AFN也有XML的解析器,但是它返回的仅仅是个解析器还得自己解析。
如果改变解析器类型,返回的数据类型就会改变,参照以下:
1. JSON 解析器: 返回JSON 解析之后的数据. ------ JSON
2. XML 解析器: 返回NSXMLParser ------ XML/默认是 SAX 解析.
3. 万能解析器: 返回NSData 数据. ----- JSON /XML /html /各种文件...
对于文件/图片/视频/网页HTML,只能选择 万能解析器!
以上是关于AFN解析器里的坑的主要内容,如果未能解决你的问题,请参考以下文章
深度解析:为何在 SwiftUI 视图的 init 初始化器里无法更改 @State 的值?
在设备管理器里看cpu我这不是显示12内核吗??不过我在任务管理器里写着6个内核
win10升级后蓝牙不见了,设备管理器里没有,多了个串行控制器里的未知USB设备?
[Visual Studio] 记一次排错:打不开 Nuget 包管理器里的安装package页面,无法 安装 / 恢复 包