博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RestTemplate 中文乱码解决方法
阅读量:5100 次
发布时间:2019-06-13

本文共 2604 字,大约阅读时间需要 8 分钟。

Spring4.2.2.RELEASE   RestTemplate 中文乱码解决方法

RestTempalate 字符串类型默认StringHttpMessageConverter做转码,而StringHttpMessageConverter的默认编码集是ISO8859-1,本工程编码是UTF-8 故发送到服务器端会存在中文乱码

第一种:把restTempalate 中  StringHttpMessageConverter 默认编码设置为UTF-8

具体:使用 restTempalate 构造函数 public RestTemplate(List<HttpMessageConverter<?>> messageConverters) 传入 StringHttpMessageConverter 默认编码集是UTF-8 的转换器

在 配置文件中配置:

 

第二种:使用 设置Http请求头中设置 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 修改默认编码

HttpHeaders headers = new HttpHeaders();		MediaType type = MediaType.parseMediaType("application/x-www-form-urlencoded; charset=UTF-8");		headers.setContentType(type); System.out.println(type); HttpEntity
requestEntity = new HttpEntity
(PostStrUtils.getPostStrFromMap(paramMap), headers); String msg = restTemplate.postForObject(url,requestEntity, String.class); ===========================================================================================
public String sendToRest(String url, Map
paramMap) { logger.debug("====================start======================"); logger.debug("调用接口-" + restUrl + url + " 入参:" + paramMap); /** * restTempalate 字符串类型默认StringHttpMessageConverter做转码,而StringHttpMessageConverter的默认编码集是ISO8859-1,本工程编码是UTF-8 故发送到服务器端会存在中文乱码 * 解决方法有两种: * 第一种:把restTempalate 中 StringHttpMessageConverter 默认编码设置为UTF-8 * 具体:使用 restTempalate 构造函数 public RestTemplate(List
> messageConverters) 传入 StringHttpMessageConverter 默认编码集是UTF-8 的转换器 * 在 配置文件中配置: *
*
*
*
*
*
*
*
*
*
*
*
*
*
*
* * * 第二种:使用 设置Http请求头中设置 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 修改默认编码 * */ //存在中文乱问题 // String msg = restTemplate.postForObject(restUrl + url, // PostStrUtils.getPostStrFromMap(paramMap), String.class); // HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/x-www-form-urlencoded; charset=UTF-8"); headers.setContentType(type); System.out.println(type); HttpEntity
requestEntity = new HttpEntity
(PostStrUtils.getPostStrFromMap(paramMap), headers); String msg = restTemplate.postForObject(url,requestEntity, String.class); logger.debug("调用接口-" + restUrl + url + " 返回:" + msg); logger.debug("====================end========================"); return msg; }

转载于:https://www.cnblogs.com/-wyl/p/6640455.html

你可能感兴趣的文章
微信小程序-发起 HTTPS 请求
查看>>
WPF动画设置1(转)
查看>>
backgound-attachment属性学习
查看>>
个人作业——关于K米的产品案例分析
查看>>
基于node/mongo的App Docker化测试环境搭建
查看>>
java web 中base64传输的坑
查看>>
java 中的线程(一)
查看>>
秒杀9种排序算法(JavaScript版)
查看>>
素数判断BFS之“Prime Path”
查看>>
Activiti入门 -- 环境搭建和核心API简介
查看>>
struts.convention.classes.reload配置为true,tomcat启动报错
查看>>
MySQL的并行复制多线程复制MTS(Multi-Threaded Slaves)
查看>>
Django中间件
查看>>
xcode 5.1安装vvdocument
查看>>
好玩的-记最近玩的几个经典ipad ios游戏
查看>>
MySQL更改默认的数据文档存储目录
查看>>
替代微软IIS强大的HTTP网站服务器工具
查看>>
6.5 案例21:将本地数据库中数据提交到服务器端
查看>>
PyQt5--EventSender
查看>>
android 通过AlarmManager实现守护进程
查看>>