侧边栏壁纸
  • 累计撰写 22 篇文章
  • 累计创建 10 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

OkHttp-gzip响应乱码问题

AF
AF
2024-02-19 / 0 评论 / 0 点赞 / 116 阅读 / 947 字

关于使用OkHttpClient 响应乱码问题

众所周知,在 HTTP 传输时是支持 gzip 压缩的,客户端发起请求时在请求头里增加 Accept-Encoding: gzip,服务端响应时在返回的头信息里增加 Content-Encoding: gzip,这表示传输的数据是采用 gzip 压缩的。默认情况下,传输内容是不压缩的,采用 gzip 压缩后可以大幅减少传输内容大小,这样可以提高传输速度,减少流量的使用。

本来 OkHttp 是默认支持 gzip 解压缩的,不需要额外配置的。

但是如果显式的配置了 Accept-Encoding: gzip,那就又可能出现响应乱码了。

OkHttp内置了许多的拦截器,其中有一个叫BridgeInterceptor,猫腻就在这里

这句代码表示:如果用户没有设置Accept-Encoding 那就会自动在encoding加上gzip值。

而且transparentGzip=true,这个变量后面有用到

当transparentGzip=true且encoding=gzip时候,那它就会自动使用gzip来解压缩数据。否则,它就认为你是要自己处理gzip压缩。所以当我们主动显式加上Accept-Encoding:gzip,它反而不会解压数据。

0

评论区