From a365eb1d7213c5f28c6d2fc2b8f87099d71d17d4 Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期一, 03 三月 2025 16:09:21 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- sdk/src/main/java/com/iailab/sdk/util/http/IailabHttpUtils.java | 32 ++++++++++++++++++++++++++------ 1 files changed, 26 insertions(+), 6 deletions(-) diff --git a/sdk/src/main/java/com/iailab/sdk/util/http/IailabHttpUtils.java b/sdk/src/main/java/com/iailab/sdk/util/http/IailabHttpUtils.java index b5cf6c4..9c1eda9 100644 --- a/sdk/src/main/java/com/iailab/sdk/util/http/IailabHttpUtils.java +++ b/sdk/src/main/java/com/iailab/sdk/util/http/IailabHttpUtils.java @@ -1,6 +1,7 @@ package com.iailab.sdk.util.http; import com.iailab.sdk.auth.client.IailabAuthClient; +import com.iailab.sdk.auth.config.AuthProperties; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; @@ -8,6 +9,7 @@ import org.apache.http.entity.StringEntity; import org.apache.http.util.EntityUtils; import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; @@ -16,6 +18,12 @@ public class IailabHttpUtils { + private static AuthProperties authProperties; + + public static void setAuthProperties(AuthProperties properties) { + authProperties = properties; + } + /** * * @param url @@ -23,8 +31,9 @@ * @param charset * @return */ - public static String doGet(String url, Map<String, String> map, String charset, String accessToken) { + public static String doGet(String url, Map<String, String> map, String charset) throws Exception { System.out.println("start doGet url: " + url); + checkToken(); org.apache.http.client.HttpClient httpClient = null; HttpGet httpGet = null; String result = null; @@ -51,8 +60,9 @@ //设置参数 httpGet.addHeader("Accept", "application/json"); httpGet.addHeader("Content-Type", "application/json;charset=UTF-8"); - httpGet.addHeader("Authorization", "Bearer " + accessToken); - httpGet.addHeader("Tenant-Id", String.valueOf(IailabAuthClient.TENANT_ID)); + 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(); @@ -73,8 +83,9 @@ * @param charset * @return */ - public static String doPost(String url, String json, String charset, String accessToken) { + public static String doPost(String url, String json, String charset) throws Exception { System.out.println("start doPost url: " + url); + checkToken(); org.apache.http.client.HttpClient httpClient = null; HttpPost httpPost = null; String result = null; @@ -84,8 +95,8 @@ //设置参数 httpPost.addHeader("Accept", "application/json"); httpPost.addHeader("Content-Type", "application/json;charset=UTF-8"); - httpPost.addHeader("Authorization", "Bearer " + accessToken); - httpPost.addHeader("Tenant-Id", String.valueOf(IailabAuthClient.TENANT_ID)); + httpPost.addHeader("Authorization", "Bearer " + IailabAuthClient.accessToken); + httpPost.addHeader("Tenant-Id", String.valueOf(authProperties.getTenantId())); StringEntity stringEntity = new StringEntity(json); stringEntity.setContentEncoding("UTF-8"); stringEntity.setContentType("application/json"); @@ -103,4 +114,13 @@ return result; } + private static void checkToken() throws Exception { + //第一次请求或者token过期,需要重新获取token + if(ObjectUtils.isEmpty(IailabAuthClient.accessToken)) { + IailabAuthClient.authenticate(); + } else if (IailabAuthClient.expireTime < System.currentTimeMillis() / 1000) { + IailabAuthClient.refreshToken(); + } + } + } -- Gitblit v1.9.3