From d93356927d8a0a5a91963c28d461d9107562d759 Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Fri, 30 May 2025 17:38:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/xin'

---
 oying-common/src/main/java/com/oying/utils/HttpRequest.java |  101 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 101 insertions(+), 0 deletions(-)

diff --git a/oying-common/src/main/java/com/oying/utils/HttpRequest.java b/oying-common/src/main/java/com/oying/utils/HttpRequest.java
new file mode 100644
index 0000000..d3293c4
--- /dev/null
+++ b/oying-common/src/main/java/com/oying/utils/HttpRequest.java
@@ -0,0 +1,101 @@
+package com.oying.utils;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.oying.exception.BadRequestException;
+import org.apache.http.conn.ssl.NoopHostnameVerifier;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.conn.ssl.TrustStrategy;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.ssl.SSLContexts;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.MediaType;
+import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
+import org.springframework.web.client.RestTemplate;
+
+import javax.net.ssl.SSLContext;
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.Map;
+
+/**
+ * 功能描述:
+ *
+ * @author LIX
+ * @date 创建时间 :2022/6/15 下午4:19
+ */
+public class HttpRequest {
+
+
+    /**
+     * 读取请求数据流
+     *
+     * @param request 请求数据
+     * @return String
+     */
+    public static String getRequestBody(HttpServletRequest request) {
+        StringBuilder sb = new StringBuilder();
+        try (ServletInputStream inputStream = request.getInputStream();
+             BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) {
+            String line;
+            while ((line = reader.readLine()) != null) {
+                sb.append(line);
+            }
+        } catch (IOException e) {
+            throw new BadRequestException("读取数据流异常");
+        }
+        return sb.toString();
+    }
+
+    /**
+     * 忽略ssl证书验证
+     *
+     * @return HttpComponentsClientHttpRequestFactory
+     */
+    public static HttpComponentsClientHttpRequestFactory getFactory() {
+        HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
+        try {
+            TrustStrategy acceptingTrustStrategy = (chain, authType) -> true;
+            SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();
+            SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
+            HttpClientBuilder clientBuilder = HttpClients.custom();
+            CloseableHttpClient httpClient = clientBuilder.setSSLSocketFactory(socketFactory).build();
+            requestFactory.setHttpClient(httpClient);
+        } catch (Exception e) {
+            throw new BadRequestException("忽略ssl证书验证失败!!!");
+        }
+        return requestFactory;
+    }
+
+    private static HttpHeaders getHeaders() {
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+        return headers;
+    }
+
+    /**
+     * http返回String
+     */
+    public static String exchangeString(HttpMethod httpMethod, String url, Map<String, Object> map) {
+        HttpHeaders headers = getHeaders();
+        HttpEntity<Object> httpEntity = new HttpEntity<>(map, headers);
+        RestTemplate restTemplate = new RestTemplate();
+        return restTemplate.exchange(url, httpMethod, httpEntity, String.class).getBody();
+    }
+
+    /**
+     * http返回JSONObject
+     */
+    public static JSONObject exchangeJsonObject(HttpMethod httpMethod, String url, Map<String, Object> map) {
+        HttpHeaders headers = getHeaders();
+        HttpEntity<Object> httpEntity = new HttpEntity<>(map, headers);
+        RestTemplate restTemplate = new RestTemplate();
+        return restTemplate.exchange(url, httpMethod, httpEntity, JSONObject.class).getBody();
+    }
+}

--
Gitblit v1.9.3