From cc479e6a056785103996cc7ea67dbd5faa3e800e Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 19 十月 2026 18:07:22 +0800
Subject: [PATCH] 数据采集模块

---
 ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java |   35 +++++++++++++++++++++++++++++++++--
 1 files changed, 33 insertions(+), 2 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 ae8fe92..1e32df9 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
@@ -72,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;
@@ -106,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);
@@ -120,6 +123,8 @@
             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));
@@ -131,6 +136,7 @@
                 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) {
@@ -151,7 +157,7 @@
                 log.error("璋冪敤in.close Exception, url=" + url + ",param=" + param, ex);
             }
         }
-        return result.toString();
+        return success;
     }
 
     public static String sendPostByHeaderOld(String url, String param, Map<String, String> headers) {
@@ -167,6 +173,8 @@
             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)) {
@@ -207,6 +215,23 @@
     }
 
     public static String sendPostByHeader(String url, String param, Map<String, String> headers) {
+        // 涓嶈瓒呮椂锛氫笌鍘嗗彶琛屼负涓�鑷达紙鑰佽皟鐢ㄦ柟涓�涓瓧鑺傞兘涓嶅彉锛�
+        return sendPostByHeader(url, param, headers, 0, 0);
+    }
+
+    /**
+     * 甯﹁秴鏃剁殑 POST锛圝SON 鎶ユ枃澶� + 鑷畾涔� header锛夈��
+     * <p>
+     * 鈿狅笍 <b>涓轰粈涔堜細鏈夎繖涓噸杞�</b>锛氫笂闈㈢殑鑰佹柟娉�<b>娌℃湁杩炴帴/璇昏秴鏃�</b>锛�
+     * 涓�鏃﹀绔笉鍝嶅簲锛岃皟鐢ㄧ嚎绋嬩細鏃犻檺鏈熸寕浣忋�傛壒閲忔寜鎮h�呰皟鐢ㄧ殑閲囬泦
+     * 锛堝"鍦ㄩ櫌淇℃伅鍒锋柊"锛屼竴杞嚑鍗冩锛夋壙鍙椾笉璧疯繖涓闄╋紝鎵�浠ヨˉ涓�涓樉寮忚秴鏃剁殑閲嶈浇锛�
+     * 鑰佹柟娉曟敼涓哄鎵樻湰鏂规硶骞朵紶 0锛�0 = 涓嶈瓒呮椂锛夛紝琛屼负涓庢敼閫犲墠瀹屽叏涓�鑷淬��
+     *
+     * @param connectTimeoutMs 杩炴帴瓒呮椂锛堟绉掞級锛泏@code <=0} 琛ㄧず涓嶈
+     * @param readTimeoutMs    璇昏秴鏃讹紙姣锛夛紱{@code <=0} 琛ㄧず涓嶈
+     */
+    public static String sendPostByHeader(String url, String param, Map<String, String> headers,
+                                          int connectTimeoutMs, int readTimeoutMs) {
         StringBuilder result = new StringBuilder();
         HttpURLConnection conn = null;
         try {
@@ -220,6 +245,12 @@
             conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
             conn.setDoOutput(true);
             conn.setDoInput(true);
+            if (connectTimeoutMs > 0) {
+                conn.setConnectTimeout(connectTimeoutMs);
+            }
+            if (readTimeoutMs > 0) {
+                conn.setReadTimeout(readTimeoutMs);
+            }
 
             if (headers != null) {
                 for (Map.Entry<String, String> entry : headers.entrySet()) {

--
Gitblit v1.9.3