记录Android Retrofit几个项目中遇到的Bug

1:sssExpected ':status' header not present

在开发的时候突然发现在android8.0的时候会报这个错误,并且无法请求到数据,但是在4.4上面是好的,没有任何异常

后来一顿上网搜索,找到解决办法,我项目中的okhttp版本是3.2.0,升级到3.9.0就好了,在8.0上面可以正常访问,具体原因是因为协议什么的,可以自己了解下

compile 'com.squareup.okhttp3:okhttp:3.2.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'

将okhttp换到3.9.0之后可以请求到数据但是,如果没有把日志拦截器版本进行更新的话,会报另一个错误:

Caused by:java.lang.NoClassDefFoundError: okhttp3.internal.Platform

并且项目闪退,这个就是刚说的如果添加了并使用了日志拦截器,记得把拦截器版本同时更新到3.9.0就可以解决

2:JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path

在使用retrofit的时候有的时候会报这个异常,也很奇怪,刚开始遇到的时候以为是后台返回json数据有问题,后来把json数据打印出来,校验发现没有问题,解决方法:

查看在构建httpclient的时候有没有addHeader,就像这样:

如果有的话,请把 gzip那条去掉:

再次运行就可以了.

开发中遇到的一点问题,写下来,有遇到同样问题的可以方便解决...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值