import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.client.RestTemplate;
import java.util.ArrayList;
import java.util.List;
import static org.springframework.http.MediaType.APPLICATION_JSON_UTF8;
@Configuration
public class RestTemplateConfig {
@Autowired
RestTemplateBuilder builder;
@Bean
public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
//修改为utf8编码,解决微信api响应体乱码
List<HttpMessageConverter<?>> converters = builder.build().getMessageConverters();
for (HttpMessageConverter<?> converter : converters) {
if (converter instanceof MappingJackson2HttpMessageConverter) {
try {
List<MediaType> mediaTypeList = new ArrayList<>(converter.getSupportedMediaTypes());
// 增加MediaType
mediaTypeList.add(APPLICATION_JSON_UTF8);
((MappingJackson2HttpMessageConverter) converter).setSupportedMediaTypes(mediaTypeList);
} catch (Exception e) {
e.printStackTrace();
}
}
}
RestTemplate restTemplate = builder.build();
return restTemplate;
}
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setReadTimeout(5000);//ms
factory.setConnectTimeout(15000);//ms
return factory;
}
}
RestTemplate修改为utf8编码,解决微信api响应体乱码
最新推荐文章于 2024-05-24 15:33:05 发布