Android移动终端通过 HttpPost发送JSON数据时出现中文乱码问题的解决方案。通常都用UTF-8 编码。
1、客户端 postData为JSON数据JSONObject.
注意点:发送和接收时转码。
public static String httpPostData(String uri, int requestTimeOut, String postData) {
String retStr = "failure";
int tmout = 5;
if (requestTimeOut > 0){
tmout = requestTimeOut;
}
try {
HttpParams httpParams = new BasicHttpParams();
httpParams.setParameter("charset", "UTF-8");
HttpConnectionParams.setConnectionTimeout(httpParams,tmout * 1000); //毫秒
HttpConnectionParams.setSoTimeout(httpParams, tmout * 1000);
HttpClient httpClient = new DefaultHttpClient(httpParams);
HttpPost httpPost = new HttpPost(uri);
httpPost.setEntity(new StringEntity(postData.toString(),"UTF-8"));
HttpResponse response;
response = httpClient.execute(httpPost);
//检验状态码,如果成功接收数据
int code = response.getStatusLine().getStatusCode();
if (code == 200) {
retStr = EntityUtils.toString(response.getEntity(),"UTF-8");
}
} catch (ClientProtocolException e) {
} catch (IOException e) {
} catch (Exception e) {
}
System.out.println("httpPostData() return:" + retStr);
return retStr;
}
2、WEB SERVLET
我用的是Spring3.1框架
注意点:BufferedReader取数时一定要转码。环境不同你可以试着转成GBK码试试。
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, ServiceException {
request.setCharacterEncoding("UTF-8"); //避免中文乱码 POST方式提交
response.setContentType("text/json;charset=UTF-8");
String responseData="[{}]"; //JSONArray String
// 读取请求JSON数据
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(),"UTF-8"));
String line = "";
StringBuilder sbf = new StringBuilder();
while((line = br.readLine())!=null){
sbf.append(line);
}
String postData = sbf.toString();
if(postData==null || "".equals(postData)){
postData = "{}"; //JSON数据
}
System.out.println("postData:" + postData);
}
共同学习,共同进步,不对之处还望指正。
分享到:
相关推荐
C#接收Json格式数据,中文出现乱码解决方法
C++使用CURL库POST请求向服务器发送JSON数据-附件资源
Delphi XE + IdHTTPServer + utf8转换 + json解析(源码+测试可用)
本实例封装了一个处理安卓客户端与服务器端交互的几个方法,对于中文乱码问题本实例也找到了解决方案.本例可以处理的场景如下: 1.与服务器端交互json数据. 2.Get方式与服务器端交互数据. 3.Post方式与服务器端交互...
使用Delphi2007编写,用http post请求后台,读写json数据,并解决中文乱码问题。本程序为测试河北省电子健康卡做的一个小程序,欢迎斧正。
HttpClient Post提交多文件及多个普通参数,已经封装成工具类。 需传入 要请求的url 普通参数map 例 map.put("param1","张三"); 需要传入的文件流map 其中key为文件名 服务端接收无乱码。
java封装的两个方法,用于获取GET或POST的响应,可能会因为编码问题造成中文乱码,测试过可用。
- 超快的速度:全面采用Ajax+Json进行数据通信,毫秒级的响应速度; - 全平台兼容性:Win Linux Mac (Apache、Nginx、IIS) #### 2.使用场景: - 取代FTP,服务端、客户端软件等复杂的安装配置。kod可以一键安装...
自动解码内容编码(避免乱码,尤其是中文) 饼干 JSON 响应自动处理 Gzip/Deflate 编码(自动解压) 代理人 安装 $ npm install req-fast --production 调试 $ DEBUG=reqfast. * node ... 用法 var req = require ( ...
- 3、post乱码过滤器 - 4、请求拦截 ###数据库连接池: Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。 Druid已经在...
{1.4}数据类型}{23}{section.1.4} {1.4.1}整数与浮点数}{23}{subsection.1.4.1} {1.4.1.1}浮点数原理}{24}{subsubsection.1.4.1.1} {1.4.2}格式化输出浮点数}{24}{subsection.1.4.2} {1.4.3}\texttt {char}}{24...
7、char为什么能存贮一个汉字? 15 9、final关键字的用法? 15 10、静态变量和实例变量的区别? 15 11、面向对象的基本特征是什么? 15 12、作用域public,private,protected,以及不写时的区别? 16 13、Overload和...
@RequestMapping(value="/delUser.do",method={RequestMethod.POST,RequestMethod.GET},consumes="application/json; charset=UTF-8") @ResponseBody public ModelAndView delUser(@RequestParam(required = true...
比如开头的很多文件路径,但是中间部分有较多的乱码,在后半部分又出现了明文。在这些明文中,我发现了关键字question.hortor.net。这个是我在抓包的时候的一个host。因此,90%的可能性发现的apkg包就是关键性的...