From b5f5d11e518ac4ef7eafb4c5c5f3e9c710c55e38 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期一, 08 九月 2025 21:29:24 +0800
Subject: [PATCH] agv对接,许可证更新

---
 src/main/java/com/zy/common/utils/HttpHandler.java |  133 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 131 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/common/utils/HttpHandler.java b/src/main/java/com/zy/common/utils/HttpHandler.java
index 70adcc7..79697c9 100644
--- a/src/main/java/com/zy/common/utils/HttpHandler.java
+++ b/src/main/java/com/zy/common/utils/HttpHandler.java
@@ -3,7 +3,10 @@
 
 import okhttp3.*;
 
+import javax.net.ssl.*;
 import java.io.IOException;
+import java.security.SecureRandom;
+import java.security.cert.X509Certificate;
 import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.TimeUnit;
@@ -15,7 +18,7 @@
  */
 public class HttpHandler {
 
-    private static final Integer DEFAULT_TIMEOUT_SECONDS = 5;
+    private static final Integer DEFAULT_TIMEOUT_SECONDS = 10;
     private static final MediaType MEDIA_TYPE = MediaType.parse("application/json;charset=utf-8");
 
     private String uri;
@@ -59,6 +62,58 @@
      * POST璇锋眰鎵ц
      * @return the HttpHandler response
      */
+    public String doPostCloseSSL() throws IOException {
+        Request request;
+        Request.Builder headerBuilder = new Request.Builder();
+        if (headers != null && headers.size()>0){
+            for (Map.Entry<String, Object> entry : headers.entrySet()){
+                headerBuilder.addHeader(entry.getKey(), String.valueOf(entry.getValue()));
+            }
+        }
+        if (json == null || "".equals(json)){
+            FormBody.Builder builder = new FormBody.Builder();
+            for (Map.Entry<String, Object> entry : params.entrySet()){
+                builder.add(entry.getKey(), String.valueOf(entry.getValue()));
+            }
+            FormBody body = builder.build();
+            request = headerBuilder
+                    .url((https?"https://":"http://")+uri+path)
+                    .post(body)
+                    .build();
+        } else {
+            RequestBody body = RequestBody.create(MEDIA_TYPE, json);
+            Request.Builder builder = headerBuilder.url((https?"https://":"http://")+uri+path);
+            builder.header("Content-Type", "application/json;charset=UTF-8");
+            request = builder.post(body).build();
+
+        }
+        Call call = getClientCloseSSL(timeout, timeUnit).newCall(request);
+        Response response = call.execute();
+        return response.body().string();
+
+    }
+
+    /**
+     * GET璇锋眰鎵ц
+     * @return the HttpHandler response
+     */
+    public String doGetCloseSSL() throws IOException {
+        String url = paramsToUrl(uri, path, params, https);
+        Request.Builder headerBuilder = new Request.Builder();
+        if (headers != null && headers.size()>0){
+            for (Map.Entry<String, Object> entry : headers.entrySet()){
+                headerBuilder.addHeader(entry.getKey(), String.valueOf(entry.getValue()));
+            }
+        }
+        Request request = headerBuilder.url(url).build();
+        Response response = getClientCloseSSL(timeout, timeUnit).newCall(request).execute();
+        return response.isSuccessful() ? response.body().string() : null;
+    }
+
+    /**
+     * POST璇锋眰鎵ц
+     * @return the HttpHandler response
+     */
     public String doPost() throws IOException {
         Request request;
         Request.Builder headerBuilder = new Request.Builder();
@@ -84,7 +139,7 @@
             request = builder.post(body).build();
 
         }
-        Call call = getClient(timeout, timeUnit).newCall(request);
+        Call call = getClientCloseSSL(timeout, timeUnit).newCall(request);
         Response response = call.execute();
         return response.body().string();
 
@@ -133,6 +188,80 @@
     }
 
     /**
+     * 鑾峰彇 okHttpClient
+     * @return the HttpHandler instance
+     */
+    private OkHttpClient getClientCloseSSL(Integer timeout, TimeUnit timeUnit){
+        return new OkHttpClient
+                .Builder()
+                .sslSocketFactory(getSSLSocketFactory())
+                .hostnameVerifier(getHostnameVerifier())
+                .connectTimeout(timeout, timeUnit)
+                .readTimeout(timeout, timeUnit)
+                .build();
+    }
+
+
+    /**
+     * description 蹇界暐https璇佷功楠岃瘉
+     *
+     * @author yanzy
+     * @version 1.0
+     * @date 2021/9/8 14:42
+     */
+    private static TrustManager[] getTrustManager() {
+        TrustManager[] trustAllCerts = new TrustManager[]{
+                new X509TrustManager() {
+                    @Override
+                    public void checkClientTrusted(X509Certificate[] chain, String authType) {
+                    }
+
+                    @Override
+                    public void checkServerTrusted(X509Certificate[] chain, String authType) {
+                    }
+
+                    @Override
+                    public X509Certificate[] getAcceptedIssuers() {
+                        return new X509Certificate[]{};
+                    }
+                }
+        };
+        return trustAllCerts;
+    }
+    /**
+     * description 蹇界暐https璇佷功楠岃瘉
+     *
+     * @author yanzy
+     * @version 1.0
+     * @date 2021/9/8 14:42
+     */
+    public static HostnameVerifier getHostnameVerifier() {
+        HostnameVerifier hostnameVerifier = new HostnameVerifier() {
+            @Override
+            public boolean verify(String s, SSLSession sslSession) {
+                return true;
+            }
+        };
+        return hostnameVerifier;
+    }
+
+    /**
+     * description 蹇界暐https璇佷功楠岃瘉
+     *`鍦ㄨ繖閲屾彃鍏ヤ唬鐮佺墖`
+     * @author yanzy
+     * @version 1.0
+     * @date 2021/9/8 14:42
+     */
+    public static SSLSocketFactory getSSLSocketFactory() {
+        try {
+            SSLContext sslContext = SSLContext.getInstance("SSL");
+            sslContext.init(null, getTrustManager(), new SecureRandom());
+            return sslContext.getSocketFactory();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+    /**
      * Http鍗忚鎶ユ枃寤洪�犺��
      */
     public static class Builder {

--
Gitblit v1.9.1