Retrofit 请求数据返回乱码问题笔记

使用默认Gson解析,一直解析错误

java.lang.IllegalStateException: ExpectedBEGIN_OBJECT but was STRING at line 1 column 1 path $

一开始以为Gson解析问题 后来发现不是 因为我把Gson换成了自定义的 StringConverterFactory或者ScalarsConverterFactory 的string直接读取后台的json 。

结果一直是乱码,且我抓包返回数据是没有问题的

再根据okhttp 返回乱码结果查询半天,发现是请求头里的

.addheader(“Accept-Encoding”, “gzip”);问题

当你添加自己的 Accept-Encoding 头信息时, OkHttp会认为你要自己处理解压缩步骤. 删除这个头信息后, OkHttp 会自动处理加头信息和解压缩的步骤.

所以, 代码注释掉, 问题解决.

去掉请求头里的addheader(“Accept-Encoding”, “gzip”);

应该是服务器后台已经设置数据gzip压缩算法 ,我们前端就不需要了 否则再压缩数据就是乱码

你可能感兴趣的:(retrofit)