查看一个网站的2个不同网页,一个正常显示,另一个完全乱码,包括英文都是乱码。郁闷~~
后来看了下这两个网页返回的header,发现一个的content-encoding是gzip,另一个没有,没有的就正常显示~~于是发现问题就在这。
添加以下代码
String contentEncoding = "";
if (method.getResponseHeader("Content-Encoding") != null) {
contentEncoding = method.getResponseHeader("Content-Encoding")
.getValue();
if (contentEncoding.indexOf("gzip") != -1) {
GZIPInputStream gzipin = new GZIPInputStream(
method.getResponseBodyAsStream());
br = new BufferedReader(new InputStreamReader(gzipin, charset));
}
} else {
br = new BufferedReader(new InputStreamReader(
method.getResponseBodyAsStream(), charset));
}
即gzip解压缩inputstream~~这样乱码就解决了~~~
分享到:
相关推荐
下载这个工具类,然后直接调用createHtmlPage方法就可以了。最关键一点是,网上的方法没有一个解决了乱码问题,费了我不少功夫。
服务器端自己写,本示例为客户端代码,可以解决httpClient4乱码问题,是替代修改源码的最佳写法。
HttpClient抓取网页Demo,HttpClient 的入门示例,配合blog文章的附件
解决HttpClient中文乱码问题jar文件
很全面的代码介绍,很完整的乱码解决说明,让你一目了然,值得研究
HttpClient4.2.5实现文件上传,无中文文件名乱码问题。亲测无问题。有问题可吐槽!
HttpClient网页抓取工具包整合,
Android源码之用HttpClient获取网页技术分享
httpclient3 httpclient4 上传文件 乱码问题
使用HttpClient获取网页html源代码获取到的源码不解析直接显示,技术比较简单,需要的朋友可以下载研究一下,项目编码GBK默认编译版本2.3.3。
httpclient远程网页抓取工具,可以继承到web项目工程中,很好哟,还等什么?
httpClient+jsoup抓取网页数据实例和jar包
* 解决中文乱码问题 * @param httpUrl * @return */ public static String downloadPage(String httpUrl) { StringBuffer pageBuffer = new StringBuffer(); URL pageUrl = null; try { pageUrl =...
httpClient和htmlparse获取网页数据使用jar
httpClient完整封装获取网页信息、数据的代码+httpclient.jar
本例子是一个使用HttpClient和URLConnection获取网页html内容的小例子,获取到的源码不解析直接显示,技术比较简单,需要的朋友可以下载研究一下,项目编码GBK默认编译版本2.3.3
测试httpclient,主要测试json参数的接口,包括get请求和post请求。
httpclient
// 发生致命的异常,可能是协议不对或者返回的内容有问题 System.out.println("请检查输入的URL!"); e.printStackTrace(); } catch (IOException e) { // 发生网络异常 System.out.println("发生网络异常!"); ...
我使用的是httpClient 进行内部转发 我们在A的服务器上,将前台的文件流,通过httpClient传输到B的服务器上(B的服务器通过控制层接受A传输的文件流,让后保存在B的服务器上。返回一个json结果)