From 107e13c8af13934e2d9b1f19b220b88f7e1a7a7b Mon Sep 17 00:00:00 2001 From: JEECG <445654970@qq.com> Date: Sat, 11 Oct 2025 11:35:36 +0800 Subject: [PATCH] =?UTF-8?q?[issues/8859]online=E8=A1=A8=E5=8D=95java?= =?UTF-8?q?=E5=A2=9E=E5=BC=BA=E5=A4=B1=E6=95=88--?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/common/util/RestUtil.java | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/RestUtil.java b/jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/RestUtil.java index f12d1d55c..6e0b5eace 100644 --- a/jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/RestUtil.java +++ b/jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/RestUtil.java @@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.http.*; -import org.springframework.http.client.SimpleClientHttpRequestFactory; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.web.client.RestTemplate; @@ -56,12 +56,22 @@ public class RestUtil { private final static RestTemplate RT; static { - SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); + //update-begin---author:chenrui ---date:20251011 for:[issues/8859]online表单java增强失效------------ + // 使用 Apache HttpClient 避免 JDK HttpURLConnection 的 too many bytes written 问题 + HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); + //update-end---author:chenrui ---date:20251011 for:[issues/8859]online表单java增强失效------------ requestFactory.setConnectTimeout(30000); requestFactory.setReadTimeout(30000); RT = new RestTemplate(requestFactory); - // 解决乱码问题 - RT.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); + //update-begin---author:chenrui ---date:20251011 for:[issues/8859]online表单java增强失效------------ + // 解决乱码问题(替换 StringHttpMessageConverter 为 UTF-8) + for (int i = 0; i < RT.getMessageConverters().size(); i++) { + if (RT.getMessageConverters().get(i) instanceof StringHttpMessageConverter) { + RT.getMessageConverters().set(i, new StringHttpMessageConverter(StandardCharsets.UTF_8)); + break; + } + } + //update-end---author:chenrui ---date:20251011 for:[issues/8859]online表单java增强失效------------ } public static RestTemplate getRestTemplate() { @@ -250,12 +260,21 @@ public class RestUtil { // 创建自定义RestTemplate(如果需要设置超时) RestTemplate restTemplate = RT; if (timeout > 0) { - SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); + //update-begin---author:chenrui ---date:20251011 for:[issues/8859]online表单java增强失效------------ + HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); + //update-end---author:chenrui ---date:20251011 for:[issues/8859]online表单java增强失效------------ requestFactory.setConnectTimeout(timeout); requestFactory.setReadTimeout(timeout); restTemplate = new RestTemplate(requestFactory); - // 解决乱码问题 - restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); + //update-begin---author:chenrui ---date:20251011 for:[issues/8859]online表单java增强失效------------ + // 解决乱码问题(替换 StringHttpMessageConverter 为 UTF-8) + for (int i = 0; i < restTemplate.getMessageConverters().size(); i++) { + if (restTemplate.getMessageConverters().get(i) instanceof StringHttpMessageConverter) { + restTemplate.getMessageConverters().set(i, new StringHttpMessageConverter(StandardCharsets.UTF_8)); + break; + } + } + //update-end---author:chenrui ---date:20251011 for:[issues/8859]online表单java增强失效------------ } // 请求体