HTTPClient PostMethod 中文乱码问题解决方案(2种)

Apache HttpClient ( http://jakarta.apache.org/commons/httpclient/ ) 是一个纯 Java 的HTTP 协议的客户端编程工具包, 对 HTTP 协议的支持相当全面, 更多细节也可以参考IBM 网站上的这篇文章 HttpClient入门 (http://www.ibm.com/developerworks/cn/opensource/os-httpclient/ ).

不过在实际使用中, 还是发现按照最基本的方式调用 HttpClient 时, 并不支持 UTF-8 编码。

现在给出2个解决方案:

一、在调用PostMethod方法时设置字符编码:

[java]view plaincopy print?
  1. PostMethod postMethod = new PostMethod(
  2. "http://127.0.0.1:8080/HttpClientServer/login.do");
  3. postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"utf-8");

二、重载PostMethod的getRequestCharSet()方法, 返回我们需要的编码(字符集)名称, 就可以解决 UTF-8 或者其它非默认编码提交 POST 请求时的乱码问题了.

[java]view plaincopy print?
  1. //Inner class for UTF-8 support
  2. public static class UTF8PostMethod extends PostMethod{
  3. public UTF8PostMethod(String url){
  4. super(url);
  5. }
  6. @Override
  7. public String getRequestCharSet() {
  8. //return super.getRequestCharSet();
  9. return "utf-8";
  10. }
  11. }
[java]view plaincopy print?
  1. PostMethod postMethod = new UTF8PostMethod(
  2. "http://127.0.0.1:8080/HttpClientServer/login.do");

三、最后服务器端要配合客户端,设置下编码字符集:

[java]view plaincopy print?
  1. public void doPost(HttpServletRequest request, HttpServletResponse response)
  2. throws ServletException, IOException {
  3. //解决中文乱码问题,此步不可少
  4. request.setCharacterEncoding("UTF-8");
  5. response.setContentType("text/html");
  6. response.setCharacterEncoding("UTF-8");
  7. PrintWriter out = response.getWriter();
  8. String username = (String) request.getParameter("username");
  9. String password = (String) request.getParameter("password");
  10. System.out.println("******************** doPost被执行了 ********************");
  11. System.out.println("您的请求参数为:/tusername:" + username + "/tpassword:"
  12. + password);
  13. out.print("您的请求参数为:/tusername:" + username + "/tpassword:" + password);
  14. out.flush();
  15. out.close();
  16. }

[HttpClient]HTTPClient PostMethod 中文乱码问题解决方案(2种)相关推荐

  1. 使用Kettle抽取数据时,出现中文乱码问题解决方案

    使用Kettle抽取数据时,出现中文乱码问题解决方案 参考文章: (1)使用Kettle抽取数据时,出现中文乱码问题解决方案 (2)https://www.cnblogs.com/yiyezhiqiu ...

  2. python3.x+requests 爬取网站遇到中文乱码的解决方案

    正常情况下,遇见问题上google找答案能甩百度100条街,但是这个问题是个例外······人家老外就没有乱码的问题.言归正传,首先建议大家看一下python3.x+requests 爬取网站遇到中文 ...

  3. sublime java文件乱码问题_Sublime Text 打开Java文档中文乱码的解决方案

    问题: 打开文档后出现中文乱码如图 1.在安装插件之前,首先要安装package control这个组件,才能够给sublime text安装各种插件 打开sublime text,按 ctrl+` ...

  4. 安装mysql中文步骤_MySql安装步骤图文教程及中文乱码的解决方案

    mysql server安装步骤如下所示: 1安装mysql server 2 安装mysqlserver管理工具 解压中文语言包,将文件复制到安装目录下覆盖 文件覆盖后,打开软件设置语言为中文(cn ...

  5. eclipse 编辑 python 中文乱码的解决方案

    eclipse 编辑 python 中文乱码的解决方案 参考文章: (1)eclipse 编辑 python 中文乱码的解决方案 (2)https://www.cnblogs.com/mouseIT/ ...

  6. dev代码拷贝中文乱码的解决方案

    dev代码拷贝中文乱码的解决方案 参考文章: (1)dev代码拷贝中文乱码的解决方案 (2)https://www.cnblogs.com/cmyg/p/8766732.html (3)https:/ ...

  7. ubuntu命令行下中文乱码的解决方案

    ubuntu命令行下中文乱码的解决方案 参考文章: (1)ubuntu命令行下中文乱码的解决方案 (2)https://www.cnblogs.com/york-hust/archive/2012/0 ...

  8. 【QT5.3】VS2013+QT5.3 中文乱码问题 解决方案

    VS2013+QT5.3 中文乱码问题 解决方案 网上很多关于QT中文乱码的问题及答案,但情况不同解决方法也不一样. 本方案适用于VS2013+QT5.3环境(编译器是VC) using namesp ...

  9. Java中文乱码特殊字符解决方案

    Java中文乱码&特殊字符解决方案 相信很多朋友遇到过Java的乱码问题,最近我也在解决一个"使用文本生成图片过程中中文以及特殊字符乱码"的问题:花了我大量时间,Debug ...

最新文章

  1. 机器学习及其在信息检索中的应用
  2. 清华姚校友陈丹琦斩获2022斯隆奖!博士论文是近十年最热之一!共计27位华人入选...
  3. 深入浅析zookeeper的一致性模型及其实现
  4. ActiveX控件打包成Cab置于网页中自动下载安装
  5. python文件及异常处理
  6. 开源公司抱团取暖,讨论如何在云厂商“寄生”下生存
  7. 数据结构上机实践第14周项目1(4) - 验证算法(平衡二叉树)
  8. 推荐系统-Task03离线物料系统的构建
  9. java各层_java后台各个层理解
  10. 汇编语言程序设计技巧详解(附例题)
  11. secKill项目 --- Redis预减库存的存在的问题 及 库存补偿
  12. IE当前安全设置不允许下载该文件的解决办法
  13. 【快乐离散数学】谓词与量词 | 嵌套量词 | 狄摩根定律 | Predicates and Quantifiers | Nested Quantifiers
  14. C++---暂时的休憩
  15. QGraphicsItem绘制重叠区域
  16. PIC18f46j50单片机里SPI部分的一点程序
  17. movidius 神经计算棒 ncsdk windows 平台 支持 配置 教程
  18. 原局凶存,大运流年体现,早亡命例。
  19. 框架条理在学习生活中的重要性
  20. 2021-7 论文阅读 [PatchScope: Memory Object Centric Patch Diffing]

热门文章

  1. Postman 如何处理上一个接口返回值作为下一个接口入参?
  2. MongoDB副本集权限重置
  3. Mac上以太坊Geth环境安装
  4. 《解读NoSQL》——2.6 通过数据库分片获得水平扩展能力
  5. Amazon验证码机器算法识别
  6. Ubuntu下在Apache中运行Keystone
  7. Linux与JVM的内存关系分析(转)
  8. 如何从SQL Server查找指定的临时表
  9. jetbrains全家桶中好用的快捷键插件:Key Promoter X
  10. python学习-练习题