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(); 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(); 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); } }