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