博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
反序列化坑
阅读量:6620 次
发布时间:2019-06-25

本文共 1492 字,大约阅读时间需要 4 分钟。

hot3.png

反序列化数据格式的问题 切记不要私自修改原框架的东西 当升级的时候 你是保留还是删除 

self.acceptableContentTypes = [NSSetsetWithObjects:@"application/json", @"text/json", @"text/javascript”,     @"text/plain",nil];

这样在后面加上之后会会是不明智的做法,你可以去gitHub上建一个分支,然后提交给原作者,等待审核,要是通过你就为框架做出了贡献 

一般我们就直接用代码加就可以了 

 tools.responseSerializer.acceptableContentTypes?.insert("text/plain")

写简历的时候你可以写为某个框架做出贡献 比如 位AFNetworking增加反序列化类型,节省了代码的添加 text/html

数据格式匹配bug提示1 添加text/plain类型

Optional(Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/plain"

加载网络请求bug 403禁止访问 你的主管理账号没有添加关联测试账号   

Optional(Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: forbidden (403)" 

加载网络请求bug3  属性命名错误 

Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: bad request (400)"


测试接口文档数据类型

坑1 不是所有的接口文档都正确 需要你的判断和验证  这个bug是属性类型不匹配

2015-12-08 14:49:13.792 微博01[6097:154105] -[__NSCFNumber length]: unrecognized selector sent to instance 0xb0000000001fcc73

2015-12-08 14:49:13.805 微博01[6097:154105] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0xb0000000001fcc73'

 {

       "access_token": "ACCESS_TOKEN",
       "expires_in": 1234,
       "remind_in":"798114",
       "uid":"12341234"

 }

这个是新浪给我的返回数据样本 很显然 expires_in的数据类型为NSNumber 修改如下

    //基本数据类型要给一个初始值

   

    var expires_in : NSTimeInterval = 0

但是返回字段的说明里面写的全是string以下介绍一种自己判断返回数据类型的方法 就是二进制数据格式返回

转载于:https://my.oschina.net/venn0126/blog/541786

你可能感兴趣的文章
我的学习思维:有关阅读的方法
查看>>
JAVA - 多线程 两种方法的比较
查看>>
mysql中查看视图的元数据?
查看>>
js ajax跨域调用
查看>>
记一次基于vue的spa多页签实践经验
查看>>
学习函数指针的笔记
查看>>
BZOJ4229选择——LCT+并查集+离线(LCT动态维护边双连通分量)
查看>>
robocopy——Windows下的高效文件拷贝
查看>>
sqlite
查看>>
字符串:格式化 - 零基础入门学习Python015
查看>>
ubuntu下安装nginx
查看>>
Eclipse快捷键大全(转载)
查看>>
Java 学习笔记之 异常法停止线程
查看>>
ArrayList源码
查看>>
Db2性能:系统CPU高问题分析的一些思路
查看>>
基于Docker一键部署大规模Hadoop集群及设计思路
查看>>
Allegro PCB Design GXL (legacy) 使用slide无法将走线推挤到焊盘的原因
查看>>
php5.4 的 arm 交叉编译
查看>>
XWiki 4.5 M1 发布
查看>>
统计图开发之二:点图元
查看>>