浏览代码

chore:补充get请求的参数类型的转换传递

韩帛霖 1 年之前
父节点
当前提交
0dbaa94816
共有 1 个文件被更改,包括 22 次插入8 次删除
  1. 22 8
      ruoyi-common/src/main/java/com/ruoyi/common/utils/http/Sending.java

+ 22 - 8
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/Sending.java

@@ -1,5 +1,6 @@
 package com.ruoyi.common.utils.http;
 
+import com.alibaba.fastjson2.JSON;
 import com.ruoyi.common.config.bpm.BpmProperties;
 import com.ruoyi.common.utils.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,14 +27,27 @@ public class Sending<T> {
      * @param params
      * @return
      */
-    private String appendParamsToUrl(String url, Map<String, Object> params) {
-        if (params != null && !params.isEmpty()) {
-            StringBuilder urlBuilder = new StringBuilder(url);
-            urlBuilder.append("?");
-            for (Map.Entry<String, Object> entry : params.entrySet()) {
-                urlBuilder.append(entry.getKey()).append("=").append(entry.getValue()).append("&");
+    private String appendParamsToUrl(String url, T obj) {
+        if (obj instanceof Map) {
+            Map<String, Object> params = (Map<String, Object>) obj;
+            if (params != null && !params.isEmpty()) {
+                StringBuilder urlBuilder = new StringBuilder(url);
+                urlBuilder.append("?");
+                for (Map.Entry<String, Object> entry : params.entrySet()) {
+                    urlBuilder.append(entry.getKey()).append("=").append(entry.getValue()).append("&");
+                }
+                url = urlBuilder.toString();
+            }
+        } else {
+            Map<String, Object> params = (Map<String, Object>) JSON.parse(obj.toString());
+            if (params != null && !params.isEmpty()) {
+                StringBuilder urlBuilder = new StringBuilder(url);
+                urlBuilder.append("?");
+                for (Map.Entry<String, Object> entry : params.entrySet()) {
+                    urlBuilder.append(entry.getKey()).append("=").append(entry.getValue()).append("&");
+                }
+                url = urlBuilder.toString();
             }
-            url = urlBuilder.toString();
         }
         return url;
     }
@@ -48,7 +62,7 @@ public class Sending<T> {
         // 判断请求类型
         if (HttpMethod.GET.name().equalsIgnoreCase(httpMethod)) {
             // 如果是 GET 请求,将参数拼接到 URL 上
-            url = appendParamsToUrl(url, (Map<String, Object>) param);
+            url = appendParamsToUrl(url, param);
         }
         // 将请求体和请求头添加到 HttpEntity
         HttpEntity<Object> requestEntity = new HttpEntity<>(param, headers);