java Http请求乱码 返回值gzip

用java请求一个天气接口,发现乱码。
用chrome访问乱码,360极速正常显示。
后来发现返回的gzip格式的
Content-Encoding:gzip

用java访问时妥妥的乱码就不用考虑是否解码问题
不需要第三方jar包,导入一个工具类就可以了

import java.util.zip.GZIPInputStream;

HttpClient httpClient = new DefaultHttpClient();
String url = "http://wthrcdn.etouch.cn/weather_mini?citykey=101070101"; // 天气接口
HttpGet httpGet = new HttpGet(url);
HttpResponse response = httpClient.execute(httpGet);
try {
    HttpEntity responsetEntity = response.getEntity();
    InputStream inputStream = responsetEntity.getContent();
    InputStream stream = new GZIPInputStream(inputStream); // 就加个这行就ok了
    if(stream != null){
        String data = IOUtils.toString(stream, "utf-8"); // 返回值
    }
catch(Exception e){

}

读取本地gz

String fileName = "C:\\Users\\Administrator\\Desktop\\doc\\test.txt.gz";
InputStream is = new GZIPInputStream(new FileInputStream(fileName));
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值