zoukankan      html  css  js  c++  java
  • HttpClient乱码问题

    HttpClient乱码问题 - wangtao20090608的专栏 - 博客频道 - CSDN.NET

    HttpClient乱码问题

    109人阅读 评论(0) 收藏 举报

    服务端Servlet代码:

    1. package com.httpclient.test;  
    2.   
    3. import java.io.IOException;  
    4. import java.io.PrintWriter;  
    5.   
    6. import javax.servlet.ServletException;  
    7. import javax.servlet.http.HttpServlet;  
    8. import javax.servlet.http.HttpServletRequest;  
    9. import javax.servlet.http.HttpServletResponse;  
    10.   
    11. public class HttpClientServlet extends HttpServlet {  
    12.   
    13.     @Override  
    14.     protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
    15.             throws ServletException, IOException {  
    16.         this.doGet(req, resp);  
    17.     }  
    18.   
    19.     @Override  
    20.     protected void doPost(HttpServletRequest req, HttpServletResponse resp)  
    21.             throws ServletException, IOException {  
    22.         req.setCharacterEncoding("UTF-8");  
    23.         resp.setCharacterEncoding("GBK");  
    24.         String username = req.getParameter("username");  
    25.         String password = req.getParameter("password");  
    26.         System.out.println(username);  
    27.         PrintWriter writer = resp.getWriter();  
    28.         writer.print(username + " = " + password);  
    29.         writer.close();  
    30.     }  
    31. }  

    HttpClient客户端代码:

    1. /* 
    2.  * To change this template, choose Tools | Templates 
    3.  * and open the template in the editor. 
    4.  */  
    5.   
    6. package com.chinapay.client;  
    7.   
    8. import java.io.BufferedReader;  
    9. import java.io.IOException;  
    10. import java.io.InputStream;  
    11. import java.io.InputStreamReader;  
    12. import org.apache.commons.httpclient.HttpClient;  
    13. import org.apache.commons.httpclient.HttpStatus;  
    14. import org.apache.commons.httpclient.NameValuePair;  
    15. import org.apache.commons.httpclient.methods.PostMethod;  
    16. import org.apache.commons.httpclient.params.HttpMethodParams;  
    17.   
    18. public class HttpClientPost {  
    19.   
    20.     public static void main(String[] args) throws IOException{  
    21.         HttpClient client = new HttpClient();  
    22.         client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");  
    23.         String url = "http://localhost:8080/httpclient/HttpClientServlet";  
    24.         PostMethod postMethod = new PostMethod(url);  
    25.   
    26.         NameValuePair[] data = {  
    27.                 new NameValuePair("username""你好")  
    28.                 ,new NameValuePair("password""wangtao") };  
    29.   
    30.         postMethod.setRequestBody(data);  
    31.         int resultCode = client.executeMethod(postMethod);  
    32.         if(resultCode != HttpStatus.SC_OK){  
    33.             System.err.println("Method failed:" + postMethod.getStatusLine());  
    34.         }  
    35.         InputStream responseBody = postMethod.getResponseBodyAsStream();  
    36.                 BufferedReader reader = new BufferedReader(new InputStreamReader(responseBody,"GBK"));  
    37.                 String tempBf = null;  
    38.                 while((tempBf=reader.readLine()) != null){  
    39.                     System.out.println(tempBf);  
    40.                 }  
    41.     }  
    42. }  

    client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");和req.setCharacterEncoding("UTF-8");编码格式相同,BufferedReader reader = new BufferedReader(new InputStreamReader(responseBody,"GBK"));和resp.setCharacterEncoding("GBK");的编码格式相同。这样就可以解决乱码问题了。

  • 相关阅读:
    Luogu P3346 [ZJOI2015]诸神眷顾的幻想乡
    SP10570 LONGCS
    Luogu P3975 [TJOI2015]弦论
    hihocoder #1457 : 后缀自动机四·重复旋律7
    Luogu SP8222 NSUBSTR
    SP7258 SUBLEX
    Luogu P4070 [SDOI2016]生成魔咒
    [清华集训2016]组合数问题
    [NOIP2018TG]保卫王国
    [note]克鲁斯卡尔重构树
  • 原文地址:https://www.cnblogs.com/lexus/p/2797392.html
Copyright © 2011-2022 走看看