Android OKhttp 网络请求添加了addHeader("Accept-Encoding", "gzip, deflate")造成json解析异常,debug之后,报com.alibaba.fastjson.JSONException: syntax error, pos 2, json : ....查找了半天找不到原因。
我们开发测试环境下都是正常可以的,结果正式环境下,运维加了 gzip 压缩,说是为了要省流量带宽,结果就悲剧了,Android HTTP 请求都走异常的方法,iOS没有问题,很崩溃。
其实这些都是 gzip 压缩的数据,不是说 OkHttp 是自动支持 gzip 解压缩的吗?为什么我们的返回数据没有进行 gzip 解压?还有一个奇怪的现象是,当我把这段代码 addHeader("Accept-Encoding", "gzip") 注释掉之后,一切又恢复正常了。原因是BridgeInterceptor 的拦截器里已经做了压缩处理,具体源码分析 可以看简书这篇文章http://events.jianshu.io/p/a9d861732445