From 0dffefa0ba7f38d54852b3c3f97158df236bfe34 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 21 七月 2026 16:42:40 +0800
Subject: [PATCH] 【丽水】病人出院记录查询慢问题处理

---
 ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java |  194 +++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 157 insertions(+), 37 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java
index 41c677b..3de259b 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java
@@ -1,10 +1,7 @@
 package com.ruoyi.common.utils.http;
 
 import java.io.*;
-import java.net.ConnectException;
-import java.net.SocketTimeoutException;
-import java.net.URL;
-import java.net.URLConnection;
+import java.net.*;
 import java.nio.charset.StandardCharsets;
 import java.security.cert.X509Certificate;
 import java.util.Map;
@@ -16,6 +13,12 @@
 import javax.net.ssl.TrustManager;
 import javax.net.ssl.X509TrustManager;
 
+import org.apache.http.HttpEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import com.ruoyi.common.constant.Constants;
@@ -69,6 +72,8 @@
             connection.setRequestProperty("accept", "*/*");
             connection.setRequestProperty("connection", "Keep-Alive");
             connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+            connection.setConnectTimeout(5000);
+            connection.setReadTimeout(10000);
             connection.connect();
             in = new BufferedReader(new InputStreamReader(connection.getInputStream(), contentType));
             String line;
@@ -103,10 +108,11 @@
      * @param param 璇锋眰鍙傛暟锛岃姹傚弬鏁板簲璇ユ槸 name1=value1&name2=value2 鐨勫舰寮忋��
      * @return 鎵�浠h〃杩滅▼璧勬簮鐨勫搷搴旂粨鏋�
      */
-    public static String sendPost(String url, String param) {
+    public static Boolean sendPost(String url, String param) {
         PrintWriter out = null;
         BufferedReader in = null;
         StringBuilder result = new StringBuilder();
+        boolean success = false;
         try {
             log.info("sendPost - {}", url);
             URL realUrl = new URL(url);
@@ -115,7 +121,10 @@
             conn.setRequestProperty("connection", "Keep-Alive");
             conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
             conn.setRequestProperty("Accept-Charset", "utf-8");
+            conn.setRequestProperty("Charsert", "UTF-8");
             conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
+            conn.setConnectTimeout(5000);
+            conn.setReadTimeout(10000);
             conn.setDoOutput(true);
             conn.setDoInput(true);
             out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), StandardCharsets.UTF_8));
@@ -127,6 +136,61 @@
                 result.append(line);
             }
             log.info("recv - {}", result);
+            success = true;
+        } catch (ConnectException e) {
+            log.error("璋冪敤HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e);
+        } catch (SocketTimeoutException e) {
+            log.error("璋冪敤HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e);
+        } catch (IOException e) {
+            log.error("璋冪敤HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e);
+        } catch (Exception e) {
+            log.error("璋冪敤HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e);
+        } finally {
+            try {
+                if (out != null) {
+                    out.close();
+                }
+                if (in != null) {
+                    in.close();
+                }
+            } catch (IOException ex) {
+                log.error("璋冪敤in.close Exception, url=" + url + ",param=" + param, ex);
+            }
+        }
+        return success;
+    }
+
+    public static String sendPostByHeaderOld(String url, String param, Map<String, String> headers) {
+        PrintWriter out = null;
+        BufferedReader in = null;
+        StringBuilder result = new StringBuilder();
+        try {
+            log.info("sendPost - {}", url);
+            URL realUrl = new URL(url);
+            URLConnection conn = realUrl.openConnection();
+            conn.setRequestProperty("accept", "*/*");
+            conn.setRequestProperty("connection", "Keep-Alive");
+            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+            conn.setRequestProperty("Accept-Charset", "utf-8");
+            conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
+            conn.setConnectTimeout(5000);
+            conn.setReadTimeout(10000);
+            conn.setDoOutput(true);
+            conn.setDoInput(true);
+            if (!Objects.isNull(headers)) {
+                for (Map.Entry<String, String> entry : headers.entrySet()) {
+                    conn.setRequestProperty(entry.getKey(), entry.getValue());
+                }
+            }
+            out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), StandardCharsets.UTF_8));
+            log.info("---------param鍙戦�佺殑鏁版嵁涓�:{}",param);
+            out.print(param);
+            out.flush();
+            in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
+            String line;
+            while ((line = in.readLine()) != null) {
+                result.append(line);
+            }
         } catch (ConnectException e) {
             log.error("璋冪敤HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e);
         } catch (SocketTimeoutException e) {
@@ -151,55 +215,49 @@
     }
 
     public static String sendPostByHeader(String url, String param, Map<String, String> headers) {
-        PrintWriter out = null;
-        BufferedReader in = null;
         StringBuilder result = new StringBuilder();
+        HttpURLConnection conn = null;
         try {
             log.info("sendPost - {}", url);
             URL realUrl = new URL(url);
-            URLConnection conn = realUrl.openConnection();
-            conn.setRequestProperty("accept", "*/*");
-            conn.setRequestProperty("connection", "Keep-Alive");
-            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
-            conn.setRequestProperty("Accept-Charset", "utf-8");
-            conn.setRequestProperty("contentType", "utf-8");
+            conn = (HttpURLConnection) realUrl.openConnection();
+            conn.setRequestMethod("POST");
+            conn.setRequestProperty("Accept", "*/*");
+            conn.setRequestProperty("Connection", "Keep-Alive");
+            conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+            conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
             conn.setDoOutput(true);
             conn.setDoInput(true);
-            if (!Objects.isNull(headers)) {
+
+            if (headers != null) {
                 for (Map.Entry<String, String> entry : headers.entrySet()) {
                     conn.setRequestProperty(entry.getKey(), entry.getValue());
                 }
             }
-            out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), StandardCharsets.UTF_8));
-            out.print(param);
-            out.flush();
-            in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
-            String line;
-            while ((line = in.readLine()) != null) {
-                result.append(line);
+
+            log.info("鍙戦�佸弬鏁帮細{}", param);
+            try (OutputStream os = conn.getOutputStream()) {
+                byte[] input = param.getBytes(StandardCharsets.UTF_8);
+                os.write(input, 0, input.length);
             }
-        } catch (ConnectException e) {
-            log.error("璋冪敤HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e);
-        } catch (SocketTimeoutException e) {
-            log.error("璋冪敤HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e);
-        } catch (IOException e) {
-            log.error("璋冪敤HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e);
+
+            try (BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8))) {
+                String line;
+                while ((line = in.readLine()) != null) {
+                    result.append(line);
+                }
+            }
         } catch (Exception e) {
-            log.error("璋冪敤HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e);
+            log.error("璋冪敤 sendPostByHeader 寮傚父锛寀rl={}, param={}", url, param, e);
         } finally {
-            try {
-                if (out != null) {
-                    out.close();
-                }
-                if (in != null) {
-                    in.close();
-                }
-            } catch (IOException ex) {
-                log.error("璋冪敤in.close Exception, url=" + url + ",param=" + param, ex);
+            if (conn != null) {
+                conn.disconnect();
             }
         }
         return result.toString();
     }
+
+
 
     public static String sendSSLPost(String url, String param) {
         StringBuilder result = new StringBuilder();
@@ -265,4 +323,66 @@
             return true;
         }
     }
+
+    public static String sendPost(String url){
+        HttpPost post = new HttpPost(url);
+        CloseableHttpClient client = HttpClients.createDefault();
+        //鍚姩鎵ц璇锋眰锛屽苟鑾峰緱杩斿洖鍊�
+        CloseableHttpResponse execute = null;
+        try {
+            execute = client.execute(post);
+            HttpEntity entity = execute.getEntity();
+            //鎶婂疄浣撳璞¤浆鎹负string
+            return EntityUtils.toString(entity, "UTF-8");
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return "璋冪敤澶辫触";
+    }
+
+    /**
+     * 瀵筓RL鍙傛暟杩涜缂栫爜锛屽鐞嗕腑鏂囦贡鐮侀棶棰�
+     *
+     * @param params 鍙傛暟瀛楃涓诧紝鏍煎紡锛歯ame1=value1&name2=value2
+     * @param charset 缂栫爜鏍煎紡
+     * @return 缂栫爜鍚庣殑鍙傛暟瀛楃涓�
+     */
+    private static String encodeParams(String params, String charset) {
+        if (StringUtils.isBlank(params)) {
+            return params;
+        }
+
+        try {
+            StringBuilder encodedParams = new StringBuilder();
+            String[] pairs = params.split("&");
+
+            for (int i = 0; i < pairs.length; i++) {
+                String pair = pairs[i];
+                if (StringUtils.isNotBlank(pair)) {
+                    int idx = pair.indexOf("=");
+                    if (idx > 0) {
+                        String key = pair.substring(0, idx);
+                        String value = pair.substring(idx + 1);
+                        // 瀵筴ey鍜寁alue閮借繘琛孶RL缂栫爜
+                        encodedParams.append(URLEncoder.encode(key, charset))
+                                .append("=")
+                                .append(URLEncoder.encode(value, charset));
+                    } else {
+                        // 娌℃湁绛夊彿锛屾暣涓綔涓簁ey
+                        encodedParams.append(URLEncoder.encode(pair, charset));
+                    }
+
+                    if (i < pairs.length - 1) {
+                        encodedParams.append("&");
+                    }
+                }
+            }
+
+            return encodedParams.toString();
+        } catch (UnsupportedEncodingException e) {
+            log.error("URL鍙傛暟缂栫爜澶辫触", e);
+            return params;
+        }
+    }
+
 }

--
Gitblit v1.9.3