HttpClient乱码问题

HttpClient POST 中文乱码问题 最近在Spring里使用HttpClient post遇到中文乱码问题,我的data数据里面有中文 阅读详情

服务端Servlet代码:

[c-sharp]  view plain copy
  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客户端代码:

[c-sharp]  view plain copy
  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");的编码格式相同。这样就可以解决乱码问题了。

HttpClient、乱码解决:实例 很全面的代码介绍,很完整的乱码解决说明,让你一目了然,值得研究 立即下载

相关推荐

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

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

【Java】HttpClient 请求出现中文乱码的问题

目录 一、现象 二、解决方式 2.1 指定请求数据的字符集为 utf-8 格式 2.2 通过 @RequestMapping 中的 produces 属性解决,指定接收方的响应数据字符集为 utf-8 三、原因和验证 3.1 排除请求是否是乱码 3.2 解决请求方获取到响应的数据为乱码 一、现象 在测试 HttpClient 时出现中文乱码的问题。但是在post请求的接收方中打印日志,可以看到接收方收到的数据是正确的。 请求方的日志: 接收方的日志: 二、解决方式 先.

qq_34416331的博客 1万+

彻底解决httpClient乱码问题

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

java HttpClient 请求返回结果乱码

解决 java HttpClient 请求返回结果乱码

m0_72642319的博客 2278

HTTP错误代号信息提示

看HTTP错误代号是什么,1xx-信息提示 这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个1xx响应。

java 中http请求为了防止乱码解决方案

主要介绍了java 中http请求为了防止乱码解决方案的相关资料,需要的朋友可以参考下

利用HttpClient调用其他服务的接口,以及解决使用HttpClient中文乱码问题

最近敲代码时,需要调用其他服务的接口,主要是通过HttpClient去调用接口,这里记录调用时的方法以及中文乱码问题解决。 配置方法 话不多说,直接上代码 public static String doPostJson(String url, String jsonstr, String charset) { HttpClient httpClient = null; HttpPost httpPost = null; String result = null;

qq_50801874的博客 1065

一份针对零基础学习AI Agent详细学习计划

以下是针对零基础学习者制定的AI Agent详细学习计划,结合最新行业动态和实用资源推荐,帮助你从入门到进阶系统掌握核心技能

sexy19910923的博客 1905

Java(25):HttpClient发起请求中文数据乱码问题解决

原因:再做接口自动化测试过程中,发现发送POST请求时,请求成功后,新增的角色描述有中文,新增成功后出现乱码。 解决方法:在POST方法初始化StringEntity时指定UTF-8 原来代码如下: public static HttpClientResult doPost(String url, String jsonstr,String token) throws Exception { CloseableHttpClient httpClient = null;

fen_fen的专栏 5418

RapidScada在windows下的安装(详细)

1.下载地址:RapidScada官网 2.版本说明 有Linux版本和Windows版本,看自己的需求下载,推荐下载最新稳定版本。 3.系统要求 4.安装前的准备(windows10) 首先打开Windows功能: 先关闭 Microsoft .NET Framework3.5的 Windows Communication Foundation 子组件。如下图: Microsoft .NET Framework配置按下图勾选: iis安装的功能: 5.安装 解压..

m0_51275803的博客 4264

华为昇腾 910B 实战:DeepSeek-R1 蒸馏模型高效部署与性能调优全解析

本文详细解析了在华为昇腾910B硬件平台上高效部署DeepSeek-R1蒸馏系列模型(14B/32B版本)的完整实战流程。内容涵盖从MindIE环境搭建、镜像获取、模型准备,到服务配置、内存参数调优、性能测试及常见问题排查,为开发者提供了基于昇腾910B进行大模型部署与优化的全链路指南。

weixin_28235513的博客 211

JAVA Httpclient 调接口 gzip格式返回值乱码

当调接口返回的值是压缩过的,如果不做处理就会得到一长串乱码。 解决方案: 在Httpclient工具类方法中,将返回头进行编码获取,判断是否包含gzip,如果包含则进行解压: //此处是将请求体封装成为了StringEntity,若乱码则指定utf-8 StringEntity se = new StringEntity(jsonstr...

默默不代表沉默 2504

5G NR上行控制信道PUCCH

一、PUCCH概述 PUCCH用于承载上行控制信息,相比LTE,NR PUCCH支持5种不同的格式,按照时域上所占用的符号数量可以分为短格式和长格式两种,如下表所示,短格式占用1-2个符号,可以承载1-2bit信息,长格式占用4-14个符号,可承载大于2bit的信息。NR引入短格式PUCCH的目的是可以缩短HARQ-ACK反馈的时延,长格式仍然是考虑到持续时间长可以保证覆盖。 NR中,考虑到系...

一个关于5G NR的博客^^ 3万+

apache httpclient3 httpclient4 上传文件名乱码问题

httpclient3解决方式:写一个FilePart实现 public class CustomFilePart extends FilePart { public CustomFilePart(String name, PartSource partSource) { super(name, partSource); } protected void

王星乐的博客 3590

SAP ABAP SM50 的另类用途 - ABAP 工作进程对数据库表读取操作的检测

今天是2020年五一国际劳动节,Jerry祝大家劳动节快乐。 虽然五一国际劳动节来源于一百多年前国外无产阶级的一次大罢工,但由于国情原因,国内很多行业的从业人员,好像天生就是劳碌命。比如程序员行业。 2014年五一劳动节,我在和一个不是总能重现的SAP CRM incident做斗争。详情参考Jerry之前的文章记一次SAP开发工程师给微软Azure报incident的体验. 当时处理完这个复杂...

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 8679

openclaw-cn : 无法将“openclaw-cn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方案

本文主要介绍了openclaw-cn : 无法将“openclaw-cn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案,希望能对使用openclaw-cn的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 10万+

关于HttpClient 获取页面,出现乱码的问题

HttpClient乱码,网上有好多方法,在这,仅说下自己获取页面,出现乱码的情情况: 将数据流增加字符集,这样就可以解决这个问题: 如:“BufferedReader br = new BufferedReader(new InputStreamReader(in,"UTF-8"));” 源码如下: private String getPage(String url,String enc

yhsap 4407

vscode的launch:program ‘‘ does not exist

如图 一般是由于launch.json文件没有配置好的缘故。在右下角的ADD configuration如选第二个登录: 看到program这一栏,这一栏很重要,一般是选择你CMakelist,编译出来的可执行文件 看我CMakelist, 我生成的可执行文件是test_,所以路径可以这样输入: 我在之前cmake的时候已经有了test_这个文件了 然后就可以运...

狂小虎/Anthony Dave的博客 KuangXiaoHu's Blogs 5万+

java httpclient 乱码_通过HttpClient获取数据出现乱码的问题的解决

通过HttpClient获取数据后,最终解析出来的数据,针对某些请求会出现中文乱码的情况,而有的请求则不会。检查代码发现在实现的时候,为避免乱码的问题出现,返回给调用方的是HttpMethod.getResponseBody()这样的字节数据,同时也会将响应结果中的HttpMethodBase.getResponseCharSet()响应编码方式返回给调用方。调用在在最终使用的过程中是按照如下方式...

weixin_42502419的博客 1299

分享一份小度在家1C系列NV2101刷机保姆级教程,轻松解锁第三方应用!(内含详细教程、刷机工具和救砖等工具)

分享一份小度在家1C系列NV2101刷机保姆级教程,轻松解锁第三方应用!(内含详细教程、刷机工具和救砖等工具)

XiaoqiangClub的博客 7190

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

通过HttpClient获取数据出现乱码的问题的解决

通过HttpClient获取数据后,最终解析出来的数据,针对某些请求会出现中文乱码的情况,而有的请求则不会。 检查代码发现 在实现的时候,为避免乱码的问题出现,返回给调用方的是HttpMethod.getResponseBody()这样的字节数据,同时也会将响应结果中的HttpMethodBase.getResponseCharSet()响应编码方式返回给调用方。 调用在在最终使用的过程中是...

桔子 1306

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

httpClient调用解决中文乱码问题以及使用

httpClient调用解决中文乱码问题 1.请求方: @ResponseBody @RequestMapping(value = "/exportVehicleRelation", method = RequestMethod.POST) @ApiOperation(value = "车辆相关导出", notes = "车辆相关导出") public List<ExportVehi...

qq_40312909的博客 2810

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

解决httpclient传中文乱码问题

这问题是源码本身的问题,在httpcore-4.2.1.jar文件中有个Consts.java类文件内容如下:/* * ==================================================================== * Licensed to the Apache Software Foundation (ASF) under one * or mo

孤独症有所好转 2263

关于HttpClient模拟浏览器请求的参数乱码问题解决方案

利用HttpClient模拟浏览器行为获取网页内容时,当参数中有中文,在服务器端解析出的参数值中的中文都是“?”,这里就给你完美的解决方案

小鸡慢慢的专栏 7324

httpclient 的 doPost请求中文乱码问题

httpclient 的 doPost请求中文乱码问题 解决方案:@RequestMapping(value="receiveTopic",method = RequestMethod.POST, produces =MediaType.TEXT_PLAIN_VALUE+";charset=utf-8")String url ="http://localhost/*****/receiveTop

kfengqingyangk的博客 1584
上一篇: 从js存取删cookie
下一篇: js字符串函数
zi_jun
博客等级 码龄18年 109粉丝 7原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值