`
齐晓威_518
  • 浏览: 618758 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

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

 
阅读更多

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

 

现在给出2个解决方案:

 

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

  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 请求时的乱码问题了.

 

  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.    }       

 

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

 

 

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

  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 PostMethod 上传文件

    在本示例中,我们将深入探讨如何使用HttpClient的PostMethod来上传文件,以及处理Get和Post请求中的乱码问题。 一、HttpClient基础 HttpClient库提供了一套完整的API,允许我们构建复杂的HTTP请求。它支持GET、POST...

    彻底解决httpClient乱码问题

    本文将深入探讨如何使用HttpClient来彻底解决乱码问题。 HttpClient是一个功能强大的HTTP客户端,支持多种HTTP协议版本,包括GET、POST等请求方法,以及重试、连接管理等功能。在处理中文字符时,由于编码不一致...

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

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

    HttpClient、乱码解决:实例

    4. 自定义解码:如果以上方式无法解决问题,可以自定义解码逻辑,如使用`InputStreamReader`和`BufferedReader`手动读取字节流并指定字符集。 四、示例代码 以下是一个简单的使用HttpClient发送GET请求并处理乱码的...

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

    以下是一些解决HttpClient中文乱码问题的关键知识点: 1. **设置字符编码**:在发送HTTP请求时,我们需要确保请求头中的`Content-Type`字段指定了正确的字符集,如`application/x-www-form-urlencoded; charset=UTF...

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

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

    Httpclient使用jar包三合一,基本使用方法

    PostMethod method = new PostMethod(str1); try { // 需要添加的header数据 List<Header> headers = new ArrayList(); headers.add(new Header("", "")); headers.add(new Header("", "")); ...

    httpclient4中文API和使用

    `httpClient笔记.docx`可能是用户或教程作者整理的关于使用HttpClient的笔记或实战案例,可能包括一些常见问题的解决方案,比如处理重定向、处理cookies、上传下载文件、使用HTTPS等。 学习HttpClient时,除了API...

    httpclient-4.5.3 api 中文版

    这在处理网络不稳定或暂时性服务器问题时非常有用。 5. **Cookie管理**:HttpClient 的`CookieStore`和`CookiePolicy`接口帮助管理Cookie,支持标准的Cookie协议,并能根据策略决定接受哪些Cookie。 6. **认证**:...

    httpclient 4.3 中文版

    ### HttpClient 4.3 中文版相关知识点 #### 一、概述 Apache HttpClient 是一个用于构建 HTTP 客户端的应用程序编程接口 (API),属于 Apache Jakarta Commons 的一部分。该库支持 HTTP 协议的最新标准,并提供了...

    使用httpclient解决跨域问题

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

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

    2. **连接管理**:HttpClient提供了`HttpConnectionManager`接口,用于管理到服务器的连接。默认实现`PoolingHttpClientConnectionManager`支持连接池,有效利用和重用TCP连接,降低延迟。 3. **请求和响应构建器**...

    解决了中文乱码的http的get和post请求demo

    总的来说,解决HTTP请求中的中文乱码问题,核心在于正确地设置编码格式,并在发送请求前对中文数据进行编码。无论是GET还是POST请求,都需要确保客户端和服务器之间对字符编码的一致理解。通过阅读提供的文档和示例...

    乱码终极解决办法java实现

    本文将详细讲解如何使用Java来实现乱码的终极解决方案。 首先,我们需要理解乱码产生的根本原因。乱码通常是由于字符集(Charset)不匹配导致的。字符集是一种规定字符如何用二进制表示的标准,如ASCII、GBK、UTF-8...

    java中文乱码解决之道(8)解决URL中文乱码问题Jav

    本文将深入探讨如何在Java中有效地解决URL中文乱码问题。 首先,我们需要理解URL编码的原理。URL编码遵循RFC 3986标准,它规定了在URL中非ASCII字符应被转换为百分号编码形式(%xy),其中xy是该字符的UTF-8编码的...

    httpclient官网教程中文版

    ### Httpclient官网教程中文版知识点总结 #### 一、引言 HTTP协议作为互联网的核心通信标准之一,在现代网络服务及物联网设备中扮演着至关重要的角色。随着技术的发展,越来越多的应用和服务依赖于HTTP协议来实现...

    HttpClient中文文档,快速开发

    这个标题"HttpClient中文文档,快速开发"表明我们有了一份关于HttpClient的中文版使用指南,对于快速理解和应用HttpClient进行开发来说非常有价值。 HttpClient允许开发者执行各种HTTP方法,如GET、POST、PUT、...

    HttpClient

    2. **构建 PostMethod**:使用 `PostMethod(String url)` 构造函数创建 PostMethod 对象。 3. **设置请求参数**:通过 `NameValuePair` 类来构建请求参数,并使用 `PostMethod.setRequestBody(NameValuePair[] ...

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

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

    android客户端向服务器提交请求的中文乱码问题

    在Android客户端向服务器提交请求时,遇到中文乱码问题是一个常见的困扰。...在本例中,使用`URLEncoder`和`URLDecoder`进行编码和解码,有效地解决了Android客户端与Tomcat服务器之间的中文乱码问题。

Global site tag (gtag.js) - Google Analytics