代码配置如下,可解决中文乱码问题
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.client.RestTemplate;
import java.nio.charset.Charset;
/**
* @program: micro-cloud
* @description: RestTemplate配置
* @author: PeterW
* @create: 2020-12-10
*/
@Configuration
public class RestConfig {
/**
* 创建HTTP客户端工厂
*
* @throws Exception
*/
@Bean(name = "clientHttpRequestFactory")
public ClientHttpRequestFactory clientHttpRequestFactory() throws Exception {
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
// 数据读取超时时间,即SocketTimeout
factory.setReadTimeout(180000);
// 连接超时
factory.setConnectTimeout(5000);
return factory;
}
/**
* 初始化RestTemplate,并加入spring的Bean工厂,由spring统一管理
*/
@Bean(name = "restTemplate")
public RestTemplate restTemplate(ClientHttpRequestFactory clientHttpRequestFactory) {
RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory);
restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(Charset.forName("UTF-8")));
return restTemplate;
}
}