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