HttpClient请求网址返回javascript乱码

问题描述

实现代码如下:public static String getHtml() { String response = ""; HttpClient client = new HttpClient(); HttpMethod method = new GetMethod("http://static1.mtime.cn/Utility/Data/TheaterListBoxData.m"); try { client.executeMethod(method); if (method.getStatusCode() == HttpStatus.SC_OK) { System.out.println(method.getResponseBodyAsString());// response = method.getResponseBodyAsString(); } } catch (URIException e) { e.printStackTrace(); return null; } catch (IOException e) { e.printStackTrace(); return null; } finally { method.releaseConnection(); } return response; } 请求这个路径http://static1.mtime.cn/Utility/Data/TheaterListBoxData.m就有问题,因为返回的是text/javascript;看到别人说说method.getResponseBodyAsStream()返回流,再设置流的字符编码,循环读取出来的也是乱码!求解决方案!

解决方案

因为response的流是gzip的,转一下就好了。 InputStream is = new GZIPInputStream(method.getResponseBodyAsStream());System.out.println(IOUtils.toString(is));
解决方案二:
Reader reader=new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream(),"编码格式"));//指定编码格式
解决方案三:
是字符编码的问题,如果你没有指定编码,那么如果你在windows下面运行的话,从byte[]变成String的时候,使用的是系统默认的编码,在WINDOWS下面,中文系统的编码默认是GBK,而你给的网址的JS采用的是UTF-8的编码,这个时候,当然就有乱码了。最后推荐你使用最新的httpclient,你使用的是3.x的,最新的4.x在易用性方面以及架构方面都有很大的进步,你可以尝试一下。
解决方案四:
提交请求前添加mehtod.setRequestHeader("Content-type", "text/javascript");

时间: 2024-10-22 04:56:54

HttpClient请求网址返回javascript乱码的相关文章

java HttpClient 请求乱码

问题描述 java HttpClient 请求乱码 java HttpClient 4.3.6的jar包为什么我get post 请求中文乱码还有怎么请求的时候怎么带参数我这样写有什么问题没有现在的情况就是乱码 public static void get() { try { CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpget = new HttpGet(""http://api.a

java httpclient请求返回错误xml但是不清楚什么原因

问题描述 java httpclient请求返回错误xml但是不清楚什么原因 <?xml version='1.0' encoding='UTF-8'?> S:Sender/S:Value SAXException hit: Premature end of file./S:Text/S:Reason /S:Detail/S:Fault/S:Body/S:Envelope 这是返回的xml不清楚什么问题 解决方案 你问服务器端的同事这到底是神马原因啊 解决方案二: 我觉得你问题没说全,http

ajax返回中文乱码,servlet中的显示乱码,post提交的乱码问题,编码大总结

ajax|servlet|编码|问题|显示|中文|中文乱码 ajax返回中文乱码问题解决使用ajax获取服务器数据返回给客户端,出现中文乱码.在之前的一个ajax应用中指定codepage=936,将所有页面编码都指定为GB2312即可解决.这 次的应用中却无起作用了,经过多次的试验,客服端的编码应该绝对没有问题的.可以判断问题一定出在服务器端.稍微分析一下可知虽然服务器端指定了文件的编 码格式,但对于服务器输出流就成为了怀疑的对象.由于使用MS SQL2000,采用unicode编码,所以返回

java发送HttpClient请求及接收请求结果过程的简单实例_java

一. 1.写一个HttpRequestUtils工具类,包括post请求和get请求 package com.brainlong.framework.util.httpclient; import net.sf.json.JSONObject; import org.apache.commons.httpclient.HttpStatus; import org.apache.http.HttpResponse; import org.apache.http.client.methods.Htt

winform-c# winfrom post请求网址带多个参数的问题 请看下面代码

问题描述 c# winfrom post请求网址带多个参数的问题 请看下面代码 string strURL = ""http://www.cqjg.gov.cn/newwww/c7/clwz.asp""; System.Net.HttpWebRequest request; request = (System.Net.HttpWebRequest)WebRequest.Create(strURL); //Post请求方式 request.Method = "

编码-单值专题图请求url返回结果触发失败函数

问题描述 单值专题图请求url返回结果触发失败函数 错误:""Expected a '' or '}' at character 2033"".开发单值专题图的时候,请求url返回的结果触发失败函数.上面的错误信息是哪里有出现问题.网上有的说:是编码的问题.也有的说是json双引号的问题.哪位大神知道,求指教. 解决方案 把json放这试试就知道是不是json的原因了 http://www.bejson.com/ 解决方案二: 首先检查下json格式是否正确?其次浏

ios-AFNetworking的post请求传中文出现乱码

问题描述 AFNetworking的post请求传中文出现乱码 请大神帮忙解决下,我用AFN往服务器传参数和图片,结果参数中的中文都变成了乱码.后台说后台是UTF-8编码,我用了各种方式传上去还是乱码,请问还怎么解决呢 解决方案 categorystr = [categorystr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];通过这个来转换 解决方案二: 对了,只有传文件的那个post方法中的中文参数是乱码,只传

安卓 jsp-安卓请求jsp返回的数据怎么解析

问题描述 安卓请求jsp返回的数据怎么解析 如图,安卓运行截图,如何获得有用数据yes 解决方案 很多种方式呀,简单的就是字符串截取处理, public static void main(String[] args){ String html = "<html><body>yes</body></html>"; int s = html.indexOf("<body>"); int e = html.ind

c# winform 请求post 带参数 请求网址

问题描述 c# winform 请求post 带参数 请求网址 c# winform 请求post 带参数 请求网址 例如:这是它post请求的网址 :www.baidu.xxx.xxx.html 请求的的正文是 Uname= //后面自己传的参数 成功状态返回1 怎么实现呢 解决方案 http://www.cnblogs.com/xssxss/archive/2012/07/03/2574554.html 解决方案二: bobo的文章很详细,注意设置x-www-form-urlencoded,