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