RestTemplateConfig.java 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package com.hz3r.config;
  2. import org.springframework.context.annotation.Bean;
  3. import org.springframework.context.annotation.Configuration;
  4. import org.springframework.http.MediaType;
  5. import org.springframework.http.client.ClientHttpRequestFactory;
  6. import org.springframework.http.client.SimpleClientHttpRequestFactory;
  7. import org.springframework.http.converter.StringHttpMessageConverter;
  8. import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
  9. import org.springframework.web.client.RestTemplate;
  10. import java.nio.charset.StandardCharsets;
  11. import java.util.ArrayList;
  12. import java.util.List;
  13. /**
  14. * RestTemplate配置组件
  15. */
  16. @Configuration
  17. public class RestTemplateConfig {
  18. @Bean
  19. public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
  20. RestTemplate restTemplate = new RestTemplate(factory);
  21. restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
  22. restTemplate.getMessageConverters().add(new WxMappingJackson2HttpMessageConverter());
  23. return restTemplate;
  24. }
  25. @Bean
  26. public ClientHttpRequestFactory httpRequestFactory() {
  27. SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
  28. factory.setReadTimeout(10000);//ms
  29. factory.setConnectTimeout(15000);//ms
  30. return factory;
  31. }
  32. //解决微信返回json Content-Type 值却是 text/plain 的问题
  33. public class WxMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter {
  34. public WxMappingJackson2HttpMessageConverter(){
  35. List<MediaType> mediaTypes = new ArrayList<>();
  36. mediaTypes.add(MediaType.TEXT_PLAIN);
  37. mediaTypes.add(MediaType.TEXT_HTML);
  38. setSupportedMediaTypes(mediaTypes);
  39. }
  40. }
  41. }