zoukankan      html  css  js  c++  java
  • 关于springboot RestTemplate 发起get,post请求 accept-charset 返回很长的英文的问题

    1原代码
    RestTemplate 这个我是自己直接new出来的,底层代码显示 RestTemplate 的编码是 iso-8859-1,并非utf-8。

    我在跟客户对接的时候,一度以为是因为header没设置 

    header.setContentType(MediaType.APPLICATION_JSON_UTF8); 的这个原因,后面排查发现加了这个也不是。
    而后又继续排查加这个:
    header.set(HttpHeaders.ACCEPT_CHARSET, StandardCharsets.UTF_8.toString()); 还是不行。
    最后查到可能是因为默认编码导致的。

    故:创建一个修改默认编码的 RestTemplate
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.http.converter.StringHttpMessageConverter;
    import org.springframework.web.client.RestTemplate;

    import java.nio.charset.StandardCharsets;

    /**
    * 创建一个RestTemplate ,修改默认编码为 utf-8,框架默认为 iso-8859-1
    */

    @Configuration
    public class RestTemplateConfig {

    @Bean
    public RestTemplate initRestTemplate(){
    RestTemplate restTemplate= new RestTemplate();
    restTemplate.getMessageConverters().set(1,new StringHttpMessageConverter(StandardCharsets.UTF_8));

    return restTemplate;
    }
    }



    在需要使用这个 RestTemplate 的时候,不要再去new了,而是

    @Resource
    private RestTemplate restTemplate;

    或者----》
    @Autowired
    private RestTemplate restTemplate;








    -------》如上述方式还是不行。可以尝试下面这方式:

    RestTemplate restTemplate=new RestTemplate();
    for (HttpMessageConverter converter : restTemplate.getMessageConverters()) {
    if (converter instanceof StringHttpMessageConverter) {
    ((StringHttpMessageConverter) converter).setWriteAcceptCharset(false);
    }
    }
    解释下:当HttpEntity 传的body为Sting  设置
     ((StringHttpMessageConverter) converter).setWriteAcceptCharset(false);
    。大致就是当参数为String时候,设置setWriteAcceptCharset为false




  • 相关阅读:
    ActiveMQ消息队列技术融合Spring
    ActiveMQ消息队列技术Demo
    网页静态化技术Freemaker
    Solr的基本语法
    Solr的页面展示以及高亮显示
    Solr的了解与配置
    Angular中上传图片到分布式文件服务器FastDFS上
    分布式文件服务器FastDFS的使用
    自我学习笔记01
    数组转换成List集合
  • 原文地址:https://www.cnblogs.com/woshuaile/p/13330694.html
Copyright © 2011-2022 走看看