From f5a65b910593501169b0e2db04a9b9c6fe790698 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期六, 26 八月 2023 13:28:55 +0800
Subject: [PATCH] 角色管理

---
 framework/src/main/java/com/yuanchu/limslaboratory/utils/HttpUtils.java |  140 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 140 insertions(+), 0 deletions(-)

diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/HttpUtils.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/HttpUtils.java
new file mode 100644
index 0000000..86283cf
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/HttpUtils.java
@@ -0,0 +1,140 @@
+package com.yuanchu.limslaboratory.utils;
+
+import com.google.gson.Gson;
+import okhttp3.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/26
+ */
+@Component
+public class HttpUtils {
+
+    private final String IP="http://localhost:";
+
+    @Value("${server.port}")
+    private String port;
+
+    public static final MediaType JSON = MediaType.get("application/json; charset=utf-8");
+
+    public static final Logger logger = LoggerFactory.getLogger(HttpUtils.class);
+
+    final OkHttpClient client
+            = new OkHttpClient.Builder()
+            .connectTimeout(10, TimeUnit.SECONDS)
+            .writeTimeout(10, TimeUnit.SECONDS)
+            .readTimeout(20, TimeUnit.SECONDS)
+            .build();
+
+    public String postJson(String url, Map<String, String> map,String token){
+        url=IP+port+url;
+        if (map == null || StringUtils.isEmpty(url)) {
+            throw new RuntimeException("url鎴栬姹傚弬鏁颁笉鑳戒负绌�");
+        }
+        Gson gson = new Gson();
+        String json = gson.toJson(map);
+        RequestBody body = RequestBody.create(JSON, json);
+        Request request = builderRequest(url, body, token);
+        try (Response response = client.newCall(request).execute()) {
+            ResponseBody responseBody = response.body();
+            if (Objects.isNull(responseBody)) {
+                throw new RuntimeException("鍝嶅簲浣撲负绌�");
+            }
+            return responseBody.string();
+        } catch (Exception e) {
+            logger.error(e.toString());
+            return "";
+        }
+    }
+
+    private Request builderRequest(String url,RequestBody body,String token) {
+        if(StringUtils.isNotEmpty(token)){
+            return new Request.Builder()
+                    .url(url)
+                    .post(body)
+                    .addHeader("X-Token", token)
+                    .build();
+        }else {
+            return new Request.Builder()
+                    .url(url)
+                    .post(body)
+                    .build();
+        }
+    }
+
+    /**
+     * 闇�瑕佷娇鐢ㄥ簭鍒楀寲宸ュ叿灏嗗璞″簭鍒楀寲鎴愬瓧绗︿覆锛氬gson
+     *
+     * @param url
+     * @param json
+     * @return
+     */
+    public String postJson(String url, String json,String token) {
+        url=IP+port+url;
+        if (StringUtils.isEmpty(json) || StringUtils.isEmpty(url)) {
+            throw new RuntimeException("url鎴栬姹傚弬鏁颁笉鑳戒负绌�");
+        }
+        RequestBody body = RequestBody.create(JSON, json);
+        Request request = builderRequest(url, body, token);
+        try (Response response = client.newCall(request).execute()) {
+            ResponseBody responseBody = response.body();
+            if (Objects.isNull(responseBody)) {
+                throw new RuntimeException("鍝嶅簲浣撲负绌�");
+            }
+            return responseBody.string();
+        } catch (Exception e) {
+            logger.error(e.toString());
+            return "";
+        }
+    }
+
+    /**
+     * @param url
+     * @param queryParamMap
+     * @return
+     */
+    public String get(String url, Map<String, String> queryParamMap, String token){
+        url=IP+port+url;
+        if (StringUtils.isEmpty(url)) {
+            throw new RuntimeException("url鎴栬姹傚弬鏁颁笉鑳戒负绌�");
+        }
+        System.out.println(url);
+        HttpUrl.Builder builder = Objects.requireNonNull(HttpUrl.parse(url)).newBuilder();
+        if (queryParamMap != null && queryParamMap.size() != 0) {
+            queryParamMap.forEach(builder::addQueryParameter);
+        }
+        url = builder.build().toString();
+        Request request=null;
+        if(StringUtils.isNotEmpty(token)){
+             request = new Request.Builder()
+                    .url(url)
+                    .addHeader("X-Token", token)
+                    .build();
+        }else {
+             request = new Request.Builder()
+                    .url(url)
+                    .build();
+        }
+        try (Response response = client.newCall(request).execute()) {
+            ResponseBody responseBody = response.body();
+            if (Objects.isNull(responseBody)) {
+                throw new RuntimeException("鍝嶅簲浣撲负绌�");
+            }
+            return responseBody.string();
+        } catch (Exception e) {
+            logger.error(e.toString());
+            return "";
+        }
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3