反序列化坑

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值