From 933846091c0b8f06158fcab23cfa0b59e8514f9b Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 22 十月 2026 15:44:25 +0800
Subject: [PATCH] 【丽水】妇幼短信发送

---
 ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java |   98 +++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 94 insertions(+), 4 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java
index f0713bc..3880900 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java
@@ -95,7 +95,26 @@
         return httpClient;
     }
 
-    public static String postJsonRequest(String url, String request) throws HttpRequestException {
+    /**
+     * json鐨刾ost璇锋眰锛堝彧鍏冲績鏄惁鎴愬姛锛岄潪200鐩存帴鎶涘紓甯革級
+     *
+     * @param url     璇锋眰url
+     * @param request 璇锋眰鎶ユ枃
+     * @return 鍥哄畾杩斿洖true锛坔ttp鐘舵�侀潪200浼氭姏HttpRequestException锛�
+     */
+    public static Boolean postJsonRequest(String url, String request) throws HttpRequestException {
+        postJsonRequestForString(url, request);
+        return true;
+    }
+
+    /**
+     * json鐨刾ost璇锋眰锛岃繑鍥炲搷搴旀姤鏂囧唴瀹癸紙鐢ㄤ簬闇�瑕佽В鏋愯繑鍥炵爜鐨勫満鏅紝濡備簯MAS鐭俊锛�
+     *
+     * @param url     璇锋眰url
+     * @param request 璇锋眰鎶ユ枃
+     * @return 鍝嶅簲鎶ユ枃鍐呭
+     */
+    public static String postJsonRequestForString(String url, String request) throws HttpRequestException {
         Assert.hasLength(url, "璇锋眰url涓嶈兘涓虹┖瀛楃涓层��");
         EntityEnclosingMethod httpMethod = new PostMethod(url);
 
@@ -106,11 +125,23 @@
             httpMethod.setRequestEntity(entity);
 
             int resultCode = httpClient.executeMethod(httpMethod);
+            // 鑾峰彇鍝嶅簲澶寸殑瀛楃缂栫爜
+            String contentType = httpMethod.getResponseHeader("Content-Type") == null ?
+                    null : httpMethod.getResponseHeader("Content-Type").getValue();
+            String charset = "UTF-8"; // 榛樿浣跨敤UTF-8
+
+            if (contentType != null && contentType.contains("charset=")) {
+                String[] parts = contentType.split("charset=");
+                if (parts.length > 1) {
+                    charset = parts[1].split(";")[0].trim();
+                }
+            }
+
             InputStream inputStream = httpMethod.getResponseBodyAsStream();
             if (inputStream == null) {
                 throw new HttpRequestException(RESPONSE_NULL_ERROR_CODE, "鍝嶅簲涓簄ull");
             }
-            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
+            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, charset));
             StringBuffer stringBuffer = new StringBuffer();
             String str = "";
             while ((str = reader.readLine()) != null) {
@@ -122,6 +153,7 @@
             if (resultCode == OK) {
                 return respJson;
             } else {
+                log.warn("銆恜ostJsonRequestForString銆戣姹傚け璐ワ紝url锛歿}锛岀姸鎬佺爜锛歿}锛屽搷搴旓細{}", url, resultCode, respJson);
                 throw new HttpRequestException(resultCode, respJson);
             }
         } catch (UnsupportedEncodingException e) {
@@ -141,10 +173,68 @@
      * json鐨刾ost璇锋眰
      *
      * @param url           璇锋眰url
-     * @param reqEntity     璇锋眰澶翠笌璇锋眰浣撶殑灏佽
-     * @param respBodyClass 鍝嶅簲浣撶被鍨�
      * @return 杩斿洖鐨勫搷搴旂粨鏋�
      */
+    public static String postXmlRequest(String url, String request) throws HttpRequestException {
+        return postXmlRequest(url, request, EMPTY_HEADERS);
+    }
+
+    public static String postXmlRequest(String url, String request, Map<String, String> headers) throws HttpRequestException {
+        Assert.hasLength(url, "鐠囬攱鐪皍rl娑撳秷鍏樻稉铏光敄鐎涙顑佹稉灞傗偓?");
+        Assert.notNull(request, "XML request must not be null");
+        EntityEnclosingMethod httpMethod = new PostMethod(url);
+
+        httpMethod.addRequestHeader(CONTENT_TYPE, TEXT_XML_UTF8);
+        setHeaderRequestId(httpMethod);
+        if (headers != null && headers != EMPTY_HEADERS) {
+            setReqHeaders(headers, httpMethod);
+        }
+
+        try {
+            RequestEntity entity = new StringRequestEntity(request, TEXT_XML, StandardCharsets.UTF_8.name());
+            httpMethod.setRequestEntity(entity);
+
+            int resultCode = httpClient.executeMethod(httpMethod);
+            String contentType = httpMethod.getResponseHeader(CONTENT_TYPE) == null
+                    ? null : httpMethod.getResponseHeader(CONTENT_TYPE).getValue();
+            String charset = StandardCharsets.UTF_8.name();
+            if (contentType != null && contentType.contains("charset=")) {
+                String[] parts = contentType.split("charset=");
+                if (parts.length > 1) {
+                    charset = parts[1].split(";")[0].trim();
+                }
+            }
+
+            InputStream inputStream = httpMethod.getResponseBodyAsStream();
+            if (inputStream == null) {
+                throw new HttpRequestException(RESPONSE_NULL_ERROR_CODE, "閸濆秴绨叉稉绨剈ll");
+            }
+            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, charset));
+            StringBuilder stringBuilder = new StringBuilder();
+            String str;
+            while ((str = reader.readLine()) != null) {
+                stringBuilder.append(str);
+            }
+            reader.close();
+            String respXml = stringBuilder.toString();
+            if (resultCode == OK) {
+                return respXml;
+            } else {
+                throw new HttpRequestException(resultCode, respXml);
+            }
+        } catch (UnsupportedEncodingException e) {
+            throw new HttpRequestException(ENCODING_ERROR_CODE, e);
+        } catch (HttpException e) {
+            throw new HttpRequestException(HTTP_ERROR_CODE, e);
+        } catch (IOException e) {
+            throw new HttpRequestException(IO_ERROR_CODE, e);
+        } finally {
+            if (httpMethod != null) {
+                httpMethod.releaseConnection();
+            }
+        }
+    }
+
     @SuppressWarnings("unchecked")
     public static <RESPBODY> HttpEntity<RESPBODY> postJsonRequestV2(String url, HttpEntity<?> reqEntity, Class<RESPBODY> respBodyClass) {
         Assert.hasLength(url, "璇锋眰url涓嶈兘涓虹┖瀛楃涓层��");

--
Gitblit v1.9.3