Pārlūkot izejas kodu

车型查询报错问题

xuqiang 5 mēneši atpakaļ
vecāks
revīzija
c1af381118

+ 28 - 0
commons/src/main/java/com/jzg/commons/config/resttemplate/RestTemplateConfig.java

@@ -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());

+ 1 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/components/InsCrawlerOrderComponents.java

@@ -17,7 +17,7 @@ import org.springframework.web.client.RestTemplate;
 @Component
 public class InsCrawlerOrderComponents {
 
-    @Resource
+    @Resource(name = "IpRestTemplate")
     private  RestTemplate restTemplate;
 
     public <T, B> B post(String url, String logId, String message, @Nullable T requestBody, Class<B> responseType, HttpHeaders httpHeaders) {