1. 程式人生 > >SpringBoot中,RestTemplate中文亂碼解決方案

SpringBoot中,RestTemplate中文亂碼解決方案

1、new一個RestTemplate:

SimpleClientHttpRequestFactory httpRequestFactory = new SimpleClientHttpRequestFactory();
httpRequestFactory.setReadTimeout(35000);
httpRequestFactory.setConnectTimeout(5000);
RestTemplate restTemplate = new RestTemplate(httpClientFactory);

2、重新設定restTemplate的messageConverters,否則用的預設的messageConverters。

List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
        messageConverters.add(new ByteArrayHttpMessageConverter());
        /** 解決亂碼的converter */
        StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter(Charset.forName
                ("UTF-8"
)); messageConverters.add(stringHttpMessageConverter); messageConverters.add(new ResourceHttpMessageConverter()); messageConverters.add(new SourceHttpMessageConverter()); messageConverters.add(new AllEncompassingFormHttpMessageConverter()); RestTemplate restTemplate = new
RestTemplate(httpClientFactory); restTemplate.setMessageConverters(messageConverters);