最近项目中遇到这样一个坑:
某一接口的HttpUrlConnection的请求返回结果为乱码,但PC浏览器直接打开是正常的。
效果图如下:

经过查阅代码发现,该接口的对应Header中有这么一段代码:

headers.put("Accept-Encoding", "gzip,deflate");

那么Accept-Encoding为gzip,deflate代表什么意思呢?

Accept-Encoding为gzip,deflate的含义

Accept-Encoding是用来设置从服务端返回的数据是否进行gzip压缩(gzip是一种数据格式,默认目前仅使用deflate算法压缩data部分)。
也就是说,如果客户端设置了gzip,deflate,等于告诉服务端,客户端是支持gzip格式的数据解压缩的。
若服务端支持gzip,deflate压缩方式,则客户端收到的数据则为gzip格式压缩的。

解决方案

第一种解决方案:

直接去掉headers.put(“Accept-Encoding”, “gzip,deflate”);
项目中,我们也是采用的此方法。

第二种解决方案:

解码服务端返回的gzip格式压缩的数据。

以下这段代码来自:http://blog.csdn.net/lzwglory/article/details/19548603
这里我并没有经过验证,直接copy过来的。

private String zipInputStream(InputStream is) throws IOException {  GZIPInputStream gzip = new GZIPInputStream(is);  BufferedReader in = new BufferedReader(new InputStreamReader(gzip, "UTF-8"));  StringBuffer buffer = new StringBuffer();  String line;  while ((line = in.readLine()) != null)  buffer.append(line + "\n");  is.close();  return buffer.toString();
} 

参考:
http://blog.csdn.net/tangzhide/article/details/53535543
http://www.bkjia.com/Javabc/1012944.html
http://blog.csdn.net/lzwglory/article/details/19548603

Android Accept-Encoding为gzip,deflate Http请求返回的结果为乱码相关推荐

  1. 设置Accept-Encoding为gzip,deflate,返回的网页是乱码

    用C#写代码去获取网页内容. 其中request的header中,设置Accept-Encoding为gzip,deflate: req = (HttpWebRequest)WebRequest.Cr ...

  2. 请求表头headers设置Accept-Encoding为gzip,deflate,br时,python ——requets的get/post返回的结果有可能是乱码

    爬取某页面的数据时,在我本机环境进行请求,返回的结果是正常的,即不乱码,但是把代码拷贝到其他电脑运行,返回的结果就是乱码了.如下: 我本机的请求结果: 其他电脑运行返回的数据是乱码的,无论是设置utf ...

  3. Android OkHttp+Retrofit+Rxjava+Hilt 的网络请求封装

    今天给大家简单的封装一个现在比较流行的网络请求框架 第一步是导入我们所需要的依赖还需要在android {}闭包下添加一个 buildFeatures{viewBinding true } imple ...

  4. web中gzip,deflate的压缩与解压

    一,对发送请求进行gzip,deflate压缩 1:gzip的情况 Java代码   Sring url = "http://localhost/save"; PostMethod ...

  5. C# 利用HttpWebRequest模拟登陆获取数据设置Accept-Encoding为gzip,deflate后返回的网页是乱码处理

    原由:在解决模拟登陆抓取数据的时候post一个地址时老是获取的内容是乱码. 经过检查最终应该是编码是HttpWebRequest.Headers.Add("Accept-Encoding&q ...

  6. 程序解码错误:Accept-Encoding“: “gzip, deflate, br

    请求头设置 "Accept-Encoding": "gzip, deflate, br" 返回的数据是乱码,无论设置utf-8.gbk.gb2312都无法解码 ...

  7. [转]android之Apache Http——向服务器发送请求的同时发送参数

    android之Apache Http--向服务器发送请求的同时发送参数 使用Get方法提交: 其他步骤与上一节的操作相符,只是在传送地址的时候发送参数的格式如下: //Sname和Sage是实际的数 ...

  8. Android 图片下载或上传时请求失败。

    项目场景: Android开发时使用OkHttp等相关网络框架与后端完成网络通信,完成上传或下载图片功能. Bug1: 通过Intent获取图片,并使用OkHttp将其传输到后端,发现后端未收到Htt ...

  9. gzip,deflate,zlib辨析

    deflate(RFC1951):一种压缩算法,使用LZ77和哈弗曼进行编码: zlib(RFC1950):一种格式,是对deflate进行了简单的封装,他也是一个实现库(delphi中有zlib,z ...

最新文章

  1. CVPR2020 | 为尾部样本构造特征云,就像用电子云填充空旷的原子——长尾数据上的特征学习方法...
  2. 入门HTML的回顾,小总结
  3. Oracle根据已有表的数据建立新表
  4. IBM AIX服务器分区之间迁移IO设备以迁移HBA卡为例
  5. docker build -t_在Docker环境构建、打包和运行Spring Boot应用
  6. 石子合并(洛谷-P1880)
  7. java jdbc 占位符_java-jdbc
  8. php 字节码查看,PHP字节码缓存和内置服务器
  9. C语言之生成汇编代码(十)
  10. 桌面计算机怎么覆盖文件,恢复被覆盖的文件_恢复被覆盖的桌面文件
  11. 用 grldr 引导WinXP/Ubuntu双系统
  12. SharedCache-共享缓存概况和初步运用实例(1)
  13. Java性能优化的35种方法
  14. 图吧工具箱 硬件检测工具集合 2020.05 最新版,集成了常用的硬件检测与系统维护等工具
  15. 计算机PS怎么做地图怎么改色,ps颜色快捷键,ps调整颜色模式和替换改色
  16. matlab 仿真步长,matlab 仿真步长设置
  17. day1 开始blog打卡之路
  18. Python2.x和Python3.x版本的区别
  19. 说说 褥羊毛和薅羊毛的那些事
  20. 在Ubuntu/Linux环境下开放3306端口

热门文章

  1. 一个人自律有多可怕?
  2. 点击body提示自由民主的网页代码
  3. python 爬虫 教务系统模拟登陆 并下载课表
  4. 3、ClickHouse表引擎-MergeTree引擎
  5. Java 异常面试题(2021最新版)
  6. 新手做电商,怎么找到合适的快递合作方
  7. thinkpad l470安装win10时系统bios配置
  8. 转:Markdown个性化主题设置
  9. Java修炼之凡界篇 筑基期 第04卷 方法 第01话 什么是方法
  10. Hadoop集群——(二)作业编写、打包、启动、查看