OkHttpClient异常java.io.IOException: gzip finished without exhausting source
问题描述
默认情况下,OkHttpClient默认对请求和返回数据进行"gzip"的自动解压缩的,而发生这个异常的原因是:服务器返回数据的时候,自动将gzip
的数据解压了,导致okhttpclient在去解压的时候发现流已经被读完了
解决方案
在请求的header中加入:
builder.addHeader("Accept-Encoding", "gzip, deflate");
这样okhttpclient就不会对请求和返回数据自动解压缩了,返回的结果是压缩的,看到的一般是一堆乱码,需要自动手动解压缩
目前没有找到在返回数据中如何判断服务器是否已经做了解压处理方法…