RestTemplate解决乱码问题
来源:互联网 发布:nginx error log 级别 编辑:程序博客网 时间:2024/06/05 09:34
spring是一个非常强大的东西,其中提供了一个工具类 RestTemplate 主要提供http服务, RestTempalate 字符串类型默认StringHttpMessageConverter做转码,而StringHttpMessageConverter的默认编码集是ISO8859-1,本工程编码是UTF-8 故发送到服务器端会存在中文乱码 。
把restTempalate 中 StringHttpMessageConverter 默认编码设置为UTF-8 具体:使用 restTempalate 构造函数 public RestTemplate(List> messageConverters) 传入 StringHttpMessageConverter 默认编码集是UTF-8 的转换器,
第一种 注入式:
配置文件 :
这样需要spring注入进来才可以,
第二种 非注入式:使用 设置Http请求头中设置 charset=UTF-8 修改默认编码,这样是提供new 的方法 设置编码
以上两种方式均可以搞定restTemplate带来的乱码问题,但是spring 单例的有点第二种没有凸显出来,所以选择第一种还是比较靠谱的。
把restTempalate 中 StringHttpMessageConverter 默认编码设置为UTF-8 具体:使用 restTempalate 构造函数 public RestTemplate(List> messageConverters) 传入 StringHttpMessageConverter 默认编码集是UTF-8 的转换器,
第一种 注入式:
配置文件 :
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate"> <constructor-arg index="0"> <list> <bean id="byteArrayHttpMessageConverter" class="org.springframework.http.converter.ByteArrayHttpMessageConverter"></bean> <bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8"></constructor-arg> </bean> <bean id="resourceHttpMessageConverter" class="org.springframework.http.converter.ResourceHttpMessageConverter"></bean> <bean id="sourceHttpMessageConverter" class="org.springframework.http.converter.xml.SourceHttpMessageConverter"></bean> <bean id="allEncompassingFormHttpMessageConverter" class="org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter"></bean> <bean id="jaxb2RootElementHttpMessageConverter" class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter"></bean> <bean id="mappingJackson2HttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean> </list> </constructor-arg> </bean>
这样需要spring注入进来才可以,
第二种 非注入式:使用 设置Http请求头中设置 charset=UTF-8 修改默认编码,这样是提供new 的方法 设置编码
RestTemplate restTemplate = new RestTemplate(); StringHttpMessageConverter stringHttpMessageConverter=new StringHttpMessageConverter(Charset.forName("UTF-8")); List<HttpMessageConverter<?>> list=new ArrayList<HttpMessageConverter<?>>(); list.add(stringHttpMessageConverter); restTemplate.setMessageConverters(list);
以上两种方式均可以搞定restTemplate带来的乱码问题,但是spring 单例的有点第二种没有凸显出来,所以选择第一种还是比较靠谱的。
阅读全文
1 0
- RestTemplate解决乱码问题
- 解决spring3.0.5使用RestTemplate发送post请求响应中文乱码问题
- RestTemplate发送中文参数乱码问题
- restTemplate使用及中文乱码问题
- restTemplate公用魔板使用及中文乱码问题
- RestTemplate 中文乱码配置
- Spring RestTemplate中文乱码原因
- 关于Spring RestTemplate乱码问题解决
- spring RestTemplate上传文件乱码
- 解决了乱码问题
- 解决中文乱码问题
- 解决vim乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 解决RichViewEdit乱码问题
- 解决jsp乱码问题
- 解决Ajax乱码问题
- request getHeader(“x-forwarded-for”) 获取真实IP
- JQuery.dataTables表格插件添加跳转到指定页
- win7每天出现taskeng.exe进程的解决方案
- java synchronized详解
- 关于SVN 目录结构
- RestTemplate解决乱码问题
- 银联支付sdk乱塞全局加解密算法,导致的支付宝加解密类乱码的问题
- Idea 类builder模式插件安装方法
- 轻松理解MYSQL MVCC 实现机制
- 在实体对象上使用Builder模式应该注意
- java多线程实现mq消息处理超时监控
- 【备忘】大数据开发之hadoop工程师成长之路零基础到精通下载
- spring Boot 微服务监控(Spring boot admin )
- Spring 定时任务的 执行时间设置规则