houzhongjian
2025-03-07 c0b68c59704f48d39aabc02d7009464c6fc36784
IailabAuthClient增加doHttp方法,支持get和post请求
已修改3个文件
49 ■■■■■ 文件已修改
iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-plat-sdk/src/main/java/com/iailab/sdk/util/http/IailabHttpUtils.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-plat-sdk/src/test/java/com/iailab/sdk/IailabClientTest.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    }
}