SpringBoot中,RestTemplate中文亂碼解決方案
阿新 • • 發佈:2019-02-16
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);