From c0b68c59704f48d39aabc02d7009464c6fc36784 Mon Sep 17 00:00:00 2001
From: houzhongjian <houzhongyi@126.com>
Date: 星期五, 07 三月 2025 10:34:56 +0800
Subject: [PATCH] IailabAuthClient增加doHttp方法,支持get和post请求

---
 iailab-plat-sdk/src/main/java/com/iailab/sdk/util/http/IailabHttpUtils.java    |    5 ++---
 iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java |   25 +++++++++++++++++++++++++
 iailab-plat-sdk/src/test/java/com/iailab/sdk/IailabClientTest.java             |   19 ++++++++++++++++++-
 3 files changed, 45 insertions(+), 4 deletions(-)

diff --git a/iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java b/iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java
index 68da919..17c088b 100644
--- a/iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java
+++ b/iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java
@@ -1,8 +1,11 @@
 package com.iailab.sdk.auth.client;
 
+import com.alibaba.fastjson.JSON;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.iailab.sdk.auth.client.dto.TokenDTO;
 import com.iailab.sdk.auth.config.AuthProperties;
 import com.iailab.sdk.auth.constants.SdkErrorCodeConstants;
+import com.iailab.sdk.util.http.IailabHttpUtils;
 import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.http.*;
 import org.springframework.stereotype.Component;
@@ -37,6 +40,8 @@
     private static final String GRAND_TYPE = "password";
 
     private static final String SCOPE = "user.read user.write";
+
+    private static final String CHARSET = "utf-8";
 
     // 鉴权token
     public static String accessToken;
@@ -122,6 +127,26 @@
         return handleResponse(exchange);
     }
 
+    /**
+     * 平台http请求封装
+     * @param method
+     * @param url
+     * @param params
+     * @return
+     * @throws Exception
+     */
+    public static String doHttp(String method, String url, Map<String, Object> params) throws Exception {
+        String response = null;
+        String upperMethod = method.toUpperCase();
+        if("GET".equals(upperMethod)) {
+            response = IailabHttpUtils.doGet(url, params, CHARSET);
+        } else if("POST".equals(upperMethod)) {
+            ObjectMapper objectMapper = new ObjectMapper();
+            response = IailabHttpUtils.doPost(url, objectMapper.writeValueAsString(params), CHARSET);
+        }
+        return response;
+    }
+
     private static void addClientHeader(HttpHeaders headers) {
         // client 拼接,需要 BASE64 编码
         String client = authProperties.getClientId() + ":" + authProperties.getClientSecret();
diff --git a/iailab-plat-sdk/src/main/java/com/iailab/sdk/util/http/IailabHttpUtils.java b/iailab-plat-sdk/src/main/java/com/iailab/sdk/util/http/IailabHttpUtils.java
index 9c1eda9..f59f119 100644
--- a/iailab-plat-sdk/src/main/java/com/iailab/sdk/util/http/IailabHttpUtils.java
+++ b/iailab-plat-sdk/src/main/java/com/iailab/sdk/util/http/IailabHttpUtils.java
@@ -31,7 +31,7 @@
      * @param charset
      * @return
      */
-    public static String doGet(String url, Map<String, String> map, String charset) throws Exception {
+    public static String doGet(String url, Map<String, Object> map, String charset) throws Exception {
         System.out.println("start doGet url: " + url);
         checkToken();
         org.apache.http.client.HttpClient httpClient = null;
@@ -48,7 +48,7 @@
                 }
                 map.forEach((k, v) -> {
                     try {
-                        sb.append(k + "=" + URLEncoder.encode(v, charset) + "&");
+                        sb.append(k + "=" + URLEncoder.encode(v.toString(), charset) + "&");
                     } catch (UnsupportedEncodingException e) {
                         e.printStackTrace();
                     }
@@ -62,7 +62,6 @@
             httpGet.addHeader("Content-Type", "application/json;charset=UTF-8");
             httpGet.addHeader("Authorization", "Bearer " + IailabAuthClient.accessToken);
             httpGet.addHeader("Tenant-Id", String.valueOf(authProperties.getTenantId()));
-
             HttpResponse response = httpClient.execute(httpGet);
             if (response != null) {
                 HttpEntity resEntity = response.getEntity();
diff --git a/iailab-plat-sdk/src/test/java/com/iailab/sdk/IailabClientTest.java b/iailab-plat-sdk/src/test/java/com/iailab/sdk/IailabClientTest.java
index 6ca996c..9ca7867 100644
--- a/iailab-plat-sdk/src/test/java/com/iailab/sdk/IailabClientTest.java
+++ b/iailab-plat-sdk/src/test/java/com/iailab/sdk/IailabClientTest.java
@@ -7,6 +7,10 @@
 import org.junit.jupiter.api.Test;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -17,7 +21,7 @@
 public class IailabClientTest extends BaseMockitoUnitTest {
 
     @Test
-    public void testLogin() throws Exception {
+    public void testLogin() {
         IailabAuthClient.authenticate();
     }
 
@@ -27,5 +31,18 @@
         IailabAuthClient.refreshToken();
     }
 
+    @Test
+    public void testDoHttp() throws Exception {
+        Map<String, Object> params = new HashMap<String, Object>();
+        List<String> itemNos = new ArrayList<String>();
+        params.put("start", "2024-06-11 07:24:00");
+        params.put("end", "2024-06-13 00:00:00");
+        itemNos.add("P0000100010");
+        params.put("itemNos", itemNos);
+        // 准备参数
+        String s = IailabAuthClient.doHttp("POST", "http://172.16.8.100/admin-api/data/api/query-plans/chart", params);
+        System.out.println(s);
+    }
+
 
 }

--
Gitblit v1.9.3