解决post请求中文乱码码时,我们都通常都写的是以post方式请求,...

中戏2016级新生新生开学报到,软萌妹子主打清纯牌。
连续在14年间强奸、杀害多名女性的犯罪嫌疑人落网。
声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
  概要:
  在使用httpclient发送post请求的时候,接收端中文乱码问题解决。
  正文:
  我们都知道,一般情况下使用post请求是不会出现中文乱码的。可是在使用httpclient发送post请求报文含中文的时候在发送端数据正常但是到了服务器端就中文乱码了。
  解决办法:
  发送端进行设置编码如下:
  主要代码:
  if (null != jsonParam) {
  //解决中文问题。
  method.addHeader(&Content-type&,&application/ charset=utf-8&);
  method.setHeader(&Accept&, &application/json&);
  method.setEntity(new StringEntity(jsonParam.toString(), Charset.forName(&UTF-8&)));
  HttpResponse result = httpClient.execute(method);
  在接收(服务器)端:
  主要代码:
  @RequestMapping(value = &getJson&)
  @ResponseBody
  public Map getJson(@RequestBody String requestBody, HttpServletRequest request){
  requestBody = new String(requestBody.getBytes(), Charset.forName(&utf-8&));
  JSONObject jsonObject = JSONObject.parseObject(requestBody);
  ResultJsonInfo info = JSONObject.parseObject(jsonObject.toJSONString(), ResultJsonInfo.class);
  //TODO 处理自己业务
  JSONObject result= new JSONObject();
  result.put(&success&, &true&);
  Map resultMap = new HashMap();
  resultMap.put(&isok&, true);
  return resultM
  这样处理之后。再次请求。乱码问题解决。
  相关文章推荐:
  如果您觉得本文对您有帮助,烦请您转发。谢谢!
  关注:【凯哥java】
欢迎举报抄袭、转载、暴力***及含有欺诈和虚假信息的不良文章。
请先登录再操作
请先登录再操作
微信扫一扫分享至朋友圈
搜狐公众平台官方账号
生活时尚&搭配博主 /生活时尚自媒体 /时尚类书籍作者
搜狐网教育频道官方账号
全球最大华文占星网站-专业研究星座命理及测算服务机构
java技术分享;实时点评;乐逗人生;逗比人生
主演:黄晓明/陈乔恩/乔任梁/谢君豪/吕佳容/戚迹
主演:陈晓/陈妍希/张馨予/杨明娜/毛晓彤/孙耀琦
主演:陈键锋/李依晓/张迪/郑亦桐/张明明/何彦霓
主演:尚格·云顿/乔·弗拉尼甘/Bianca Bree
主演:艾斯·库珀/ 查宁·塔图姆/ 乔纳·希尔
baby14岁写真曝光
李冰冰向成龙撒娇争宠
李湘遭闺蜜曝光旧爱
美女模特教老板走秀
曝搬砖男神奇葩择偶观
柳岩被迫成赚钱工具
大屁小P虐心恋
匆匆那年大结局
乔杉遭粉丝骚扰
男闺蜜的尴尬***
******:86-10-
***邮箱:用AsyncHttpClient往服务器上POST中文乱码怎么解决?
[问题点数:100分]
用AsyncHttpClient往服务器上POST中文乱码怎么解决?
[问题点数:100分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。java技术(31)
解决request中文乱码的问题
request.setCharacterEncoding(charset);必须写在第一次使用request.getParameter()之前,
这样才能保证参数是按照已经设置的字符编码来获取。
response.setCharacterEncoding(charset);必须写在PrintWriter out =
request.getWriter()之前,
这样才能保证out按照已经设置的字符编码来进行字符输出。
通过过滤器,我们可以保证在Servlet或JSP执行之前就设置好了请求和响应的字符编码。
但是这样并不能完全解决中文乱码问题:
对于post请求,无论是“获取参数环节”还是“输出环节&都是没问题的;
对于get请求,&输出环节&没有问题,但是&获取参数环节&依然出现中文乱码,所以在输
出时直接将乱码输出了。
原因是post请求和get请求存放参数位置是不同的:
post方式参数存放在请求数据包的消息体中。get方式参数存放在请求数据包的请求行的
URI字段中,以?开始以param=value¶me2=value2的形式附加在URI字段之后。而
request.setCharacterEncoding(charset);
只对消息体中的数据起作用,对于URI字段中的参数不起作用。
当使用request.setCharacterEncoding(charset);时,只能解决表单方法为POST的中文
乱码情况,而方法为GET的依然为乱码。
解决GET乱码:
String&str&=request.getParameter(&URL后面的变量名&);&&byte&b[]&=str.getBytes(&ISO-8859-1&);&&&&str&=&new String(b);&&
String str =request.getParameter(&URL后面的变量名&);
byte b[] =str.getBytes(&ISO-8859-1&);
str = newString(b);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:107106次
积分:2194
积分:2194
排名:第12499名
原创:79篇
转载:227篇
评论:28条
(3)(2)(3)(7)(4)(1)(1)(1)(12)(8)(18)(18)(15)(29)(39)(9)(16)(29)(11)(17)(9)(10)(9)(38) 您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&

参考资料

 

随机推荐