|
|
@@ -77,6 +77,34 @@ public class RestTemplateConfig {
|
|
|
return restTemplate;
|
|
|
}
|
|
|
|
|
|
+ @Bean("IpRestTemplate")
|
|
|
+ public RestTemplate IpRestTemplate() throws NoSuchAlgorithmException, KeyManagementException {
|
|
|
+ RestTemplate restTemplate = new RestTemplate(httpRequestFactory());
|
|
|
+ restTemplate.setErrorHandler(new CustomResponseErrorHandler());
|
|
|
+ restTemplate.setInterceptors(Collections.singletonList(new RestTemplateRequestInterceptor()));
|
|
|
+
|
|
|
+ // 替换默认的 StringHttpMessageConverter,支持 GBK
|
|
|
+ List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
|
|
|
+ for (HttpMessageConverter<?> converter : restTemplate.getMessageConverters()) {
|
|
|
+ if (converter instanceof StringHttpMessageConverter) {
|
|
|
+ messageConverters.add(new StringHttpMessageConverter(Charset.forName("GBK")));
|
|
|
+ } else {
|
|
|
+ messageConverters.add(converter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 增加支持 GBK 的 MappingJackson2HttpMessageConverter
|
|
|
+ MappingJackson2HttpMessageConverter jackson2Converter = new MappingJackson2HttpMessageConverter();
|
|
|
+ List<MediaType> mediaTypes = new ArrayList<>(jackson2Converter.getSupportedMediaTypes());
|
|
|
+ mediaTypes.add(MediaType.valueOf("text/json;charset=GBK")); // 重点
|
|
|
+ jackson2Converter.setSupportedMediaTypes(mediaTypes);
|
|
|
+
|
|
|
+ messageConverters.add(jackson2Converter);
|
|
|
+
|
|
|
+ restTemplate.setMessageConverters(messageConverters);
|
|
|
+ return restTemplate;
|
|
|
+ }
|
|
|
+
|
|
|
@Bean
|
|
|
public ClientHttpRequestFactory httpRequestFactory() throws NoSuchAlgorithmException, KeyManagementException {
|
|
|
return new HttpComponentsClientHttpRequestFactory(httpClient());
|