HttpClient抓包返回值乱码
来源:互联网 发布:软件管理系统php 编辑:程序博客网 时间:2024/05/22 15:30
最近在使用HttpClient抓包时获取数据时,返回得到的数据一直都是乱码,刚开始以为是header头部的字符编码与后台的编码不一致导致的乱码,但是经过各种转编码后还是不行。然后仔细研究http头信息,发现这个url返回的数据是 Content-Encoding:
gzip 类型的数据,用IE浏览器请求这种链接的话得到的会是一个ZIP文件下载,返回的数据都压缩在了zip文件里面了。
所以,如果使用普通的
使用GZIPInputStream类去读取ZIP文件,就不会乱码啦。
备注:很多URL的头信息ContentType-Encoding的类型也是GZIP,但是返回的数据也不是通过压缩文件返回,用InputStream类读取返回数据就可以。具体是什么原因,
如何辨别返回的数据类型是压缩文件还是普通的数据,这个有时间再慢慢分析了。
所以,如果使用普通的
InputStream in = null; BufferedReader reader = null; HttpEntity entity = response.getEntity(); if(entity != null){ String line; in = entity.getContent(); reader = new BufferedReader(new InputStre amReader(in,"UTF-8")); }InputStream类去读取数据,不管你如何转换编码类型,得到的都会是乱码,InputStream类本身不能解析到ZIP压缩文件。所以,改成:
InputStream in = null; GZIPInputStream gzip = null; BufferedReader reader = null; HttpEntity entity = response.getEntity(); if(entity != null){ String line; in = entity.getContent(); gzip = new GZIPInputStream(in); reader = new BufferedReader(new InputStre amReader(gzip ,"UTF-8")); }
使用GZIPInputStream类去读取ZIP文件,就不会乱码啦。
备注:很多URL的头信息ContentType-Encoding的类型也是GZIP,但是返回的数据也不是通过压缩文件返回,用InputStream类读取返回数据就可以。具体是什么原因,
如何辨别返回的数据类型是压缩文件还是普通的数据,这个有时间再慢慢分析了。
0 0
- HttpClient抓包返回值乱码
- node爬虫返回数据乱码,但抓包不是乱码
- httpclient返回值中文乱码问题解决方法
- httpclient返回值中文乱码问题解决方法
- httpclient返回值中文乱码问题解决方法
- 解决 httpclient 返回乱码
- Charles抓包乱码解决办法
- HttpClient与网络抓包wireshark
- 解决httpClient返回结果中文乱码
- HttpClient抓取网页返回乱码的解决办法
- httpclient getResponseBodyAs*返回的内容乱码
- C#HttpClient返回乱码的解决方案
- fiddler抓包参数乱码的解决方法
- Fiddler抓包中文乱码问题
- Fiddler2抓包中文乱码解决方法
- Fiddler抓包中文乱码问题
- HttpClient模拟手机人人网登陆(一)---抓包
- wireshark 抓包发现 httpclient 提交的问题
- 善用iOS App中Web View控件的好处
- Android Studio 中api>9 之后无法找到 org.apache.http 包的问题
- android设计模式之装饰模式(一)
- 安卓蓝牙BLE设备开发
- 理解jquery的$.extend()、$.fn和$.fn.extend()
- HttpClient抓包返回值乱码
- Linux strace命令
- 内容提供者:ContentProvider
- C语言的短路现象
- 关于大数据量下Core Data的数据迁移
- AngularJS实例教程(一)
- C#学习笔记之多播委托
- 几个性能测试工具
- 腾讯云服务器安装各版本sqlserver教程