`
gao36951
  • 浏览: 18103 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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方法时设置字符编码:

    PostMethod postMethod = new PostMethod(  
            "http://127.0.0.1:8080/HttpClientServer/login.do");  
    postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"utf-8");  

二、重载PostMethod的getRequestCharSet()方法, 返回我们需要的编码(字符集)名称, 就可以解决 UTF-8 或者其它非默认编码提交 POST 请求时的乱码问题了.
//Inner class for UTF-8 support     
   public static class UTF8PostMethod extends PostMethod{     
       public UTF8PostMethod(String url){     
           super(url);     
       }     
       @Override    
       public String getRequestCharSet() {     
           //return super.getRequestCharSet();     
           return "utf-8";     
       }     
   }     

    PostMethod postMethod = new UTF8PostMethod(  
                    "http://127.0.0.1:8080/HttpClientServer/login.do");  

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

public void doPost(HttpServletRequest request, HttpServletResponse response)  
        throws ServletException, IOException {  
    //解决中文乱码问题,此步不可少  
    request.setCharacterEncoding("UTF-8");  
    response.setContentType("text/html");  
    response.setCharacterEncoding("UTF-8");  
    PrintWriter out = response.getWriter();  
    String username = (String) request.getParameter("username");  
    String password = (String) request.getParameter("password");  
    System.out.println("******************** doPost被执行了 ********************");  
    System.out.println("您的请求参数为:/tusername:" + username + "/tpassword:"  
            + password);  
    out.print("您的请求参数为:/tusername:" + username + "/tpassword:" + password);  
    out.flush();  
    out.close();  
} 

转自:http://blog.csdn.net/apei830/article/details/5526236

分享到:
评论

相关推荐

    httpclient4上传文件中文乱码问题解决办法代码示例

    服务器端自己写,本示例为客户端代码,可以解决httpClient4乱码问题,是替代修改源码的最佳写法。

    彻底解决httpClient乱码问题

    下载这个工具类,然后直接调用createHtmlPage方法就可以了。最关键一点是,网上的方法没有一个解决了乱码问题,费了我不少功夫。

    HttpClient4.2.5上传文件,无中文文件名乱码问题

    HttpClient4.2.5实现文件上传,无中文文件名乱码问题。亲测无问题。有问题可吐槽!

    解决HttpClient中文乱码问题jar文件

    解决HttpClient中文乱码问题jar文件

    HttpClient PostMethod 上传文件

    本人自己总结的httpClient PostMethod 上传文件完整实例 以及 使用java PostMethod 和GetMethod 发送请求实例 及乱码处理

    HttpClient、乱码解决:实例

    很全面的代码介绍,很完整的乱码解决说明,让你一目了然,值得研究

    可用org.apache.commons.httpclient-3.1.0.jar.zip

    import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.multipart.FilePart; import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;...

    httpclient-4.5.3 api 中文版

    httpclient-4.5.3 api 中文版

    httpclient-4.5.6-API文档-中文版.zip

    标签:apache、httpcomponents、httpclient、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明...

    httpclient 上传文件

    httpclient3 httpclient4 上传文件 乱码问题

    使用httpclient解决跨域问题

    我使用的是httpClient 进行内部转发 我们在A的服务器上,将前台的文件流,通过httpClient传输到B的服务器上(B的服务器通过控制层接受A传输的文件流,让后保存在B的服务器上。返回一个json结果)

    httpclient-4.5.5-API文档-中文版.zip

    包含翻译后的API文档:httpclient-4.5.5-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:org.apache.httpcomponents,artifactId:httpclient,version:4.5.5 使用方法:解压翻译后的API文档,用...

    手动修改编码为UTF-8 的 commons-httpclient-3.1包

    在开发中遇到乱码问题 上传文件并传其它参数时 按网上多种方法尝试设置UTF-8编码总是不好用,只好修改源码统一编码为utf-8 后打包,解决问题 此包没有经过其它编码环境下测试,不过应该不会有其它影响

    httpclient-4.5.13-API文档-中文版.zip

    标签:apache、httpcomponents、httpclient、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明...

    httpclient-4.5.3中文版文档,很实用

    《 httpclient-4.5.3中文版》 文档 ,重要的事说三遍:很实用,很实用,很实用!

    HttpClientUtil2.java

    HttpClient汇总工具类 HttpClient汇总工具类HttpClient汇总工具类HttpClient汇总工具类

    httpclient-4.2.5-API文档-中文版.zip

    标签:apache、httpcomponents、httpclient、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明...

    httpclient包

    解决以下问题引起的报错 org.apache.commons.httpclient.HttpClient; org.apache.commons.httpclient.methods.InputStreamRequestEntity; org.apache.commons.httpclient.methods.PostMethod; org.apache.commons....

    httpclient-4.5jar

    httpclient-4.5所需jar包,里面包含httpclient-4.5.jar等等10个必须的开发包。 1.commons-codec-1.9.jar 2.commons-logging-1.2.jar 3.fluent-hc-4.5.jar 4.httpclient-4.5.jar 5.httpclient-cache-4.5.jar 6....

    HttpClient中文文档,快速开发

    HttpClient中文文档,快速开发

Global site tag (gtag.js) - Google Analytics