From f67e78a754fb8d7364d35aaafb0295690a4cc810 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期三, 03 十二月 2025 10:37:06 +0800
Subject: [PATCH] 最新版本541200007

---
 server/system_service/src/main/java/com/doumee/core/utils/HttpsUtil.java |  140 ++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 127 insertions(+), 13 deletions(-)

diff --git a/server/system_service/src/main/java/com/doumee/core/utils/HttpsUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/HttpsUtil.java
index c74af73..244f654 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/HttpsUtil.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/HttpsUtil.java
@@ -1,17 +1,35 @@
 package com.doumee.core.utils;
 
+import lombok.extern.slf4j.Slf4j;
+import org.apache.http.HttpEntity;
+import org.apache.http.ParseException;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpDelete;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpRequestBase;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
+import org.springframework.http.HttpMethod;
+
 import javax.net.ssl.*;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.io.OutputStream;
+import java.io.*;
 import java.net.HttpURLConnection;
+import java.net.URI;
 import java.net.URL;
 import java.security.KeyManagementException;
 import java.security.NoSuchAlgorithmException;
 import java.security.SecureRandom;
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
-
+@Slf4j
 public class HttpsUtil {
 
     public static String get(String url,boolean ignoreSSL) {
@@ -27,6 +45,65 @@
         }else{
             return connectionHttp(url, "POST", data, "application/json");
         }
+    }
+    private static final int CONNECT_TIMEOUT =10000;// 璁剧疆杩炴帴寤虹珛鐨勮秴鏃舵椂闂翠负10s
+    private static final int SOCKET_TIMEOUT = 10000;//socket璇诲啓瓒呮椂鏃堕棿(鍗曚綅姣)
+
+    private static void setRequestConfig(HttpRequestBase httpRequestBase) {
+        RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(CONNECT_TIMEOUT)
+                .setConnectTimeout(CONNECT_TIMEOUT).setSocketTimeout(SOCKET_TIMEOUT).build();
+        httpRequestBase.setConfig(requestConfig);
+    }
+
+    public static String doPostHk(String host,int port,String UserName,String Password,String url, String Input) {
+        try {
+            CloseableHttpResponse responseBody = null;
+            HttpPost httpPost = new HttpPost("http://"+host+":"+port+url);
+            setRequestConfig(httpPost);
+            httpPost.setEntity(new StringEntity(Input, "UTF-8"));
+            CredentialsProvider credsProvider = new BasicCredentialsProvider();
+            credsProvider.setCredentials(new AuthScope(host, port),
+                    new UsernamePasswordCredentials(UserName, Password));
+            CloseableHttpClient httpClient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
+
+            String response = "";
+
+            // 鐢卞鎴风鎵ц(鍙戦��)Post璇锋眰
+            responseBody = httpClient.execute(httpPost);
+            // 浠庡搷搴旀ā鍨嬩腑鑾峰彇鍝嶅簲瀹炰綋
+            HttpEntity responseEntity = responseBody.getEntity();
+            log.error("doPostHk鍝嶅簲鐘舵�佷负:" + responseBody.getStatusLine());
+            if (responseBody.getStatusLine().getStatusCode() == 302){
+                String redirectLocation = responseBody.getHeaders("Location")[0].getValue();
+                log.error("doPostHkRedirected to: " + redirectLocation);
+                // 鍦ㄨ繖閲岋紝浣犲彲浠ュ彂閫佷竴涓柊鐨勮姹傚埌redirectLocation
+                httpPost.setURI(URI.create(redirectLocation));
+                CloseableHttpResponse responseBody2 = httpClient.execute(httpPost);
+                log.error("doPostHk閲嶅畾鍚戝悗鍝嶅簲鐘舵�佷负:" + responseBody2.getStatusLine());
+                HttpEntity responseEntity2 = responseBody2.getEntity();
+                log.error("doPostHk閲嶅畾鍚戝悗鍝嶅簲鍐呭闀垮害涓�:" + responseEntity2.getContentLength());
+                response = EntityUtils.toString(responseEntity2);
+                log.error("doPostHk閲嶅畾鍚戝悗鍝嶅簲鍐呭涓�:\n" + response);
+                responseBody2.close();
+                return response;
+            }else {
+                if (responseEntity != null) {
+                    log.error("doPostHk鍝嶅簲鍐呭闀垮害涓�:" + responseEntity.getContentLength());
+                    response = EntityUtils.toString(responseEntity);
+                    log.error("doPostHk鍝嶅簲鍐呭涓�:\n" + response);
+                    return response;
+                }
+            }
+            if (httpClient != null) {
+                httpClient.close();
+            }
+            if (responseBody != null) {
+                responseBody.close();
+            }
+        } catch (Exception e) {
+            log.error("doPostHk鍙戣捣璇锋眰寮傚父:\n" + e.getMessage());
+        }
+        return null;
     }
 
     public static String connection(String url,String method,String data,String contentType,boolean ignoreSSL){
@@ -87,6 +164,38 @@
         }
         return null;
     }
+    public static InputStream connectionInputsteam(String url,String method,String data,String contentType ){
+        HttpURLConnection connection = null;
+        try {
+            URL _url = new URL(url);
+            connection = (HttpURLConnection) _url.openConnection();
+            connection.setRequestMethod(method);
+            connection.setDoOutput(true);
+            connection.setDoInput(true);
+            connection.setUseCaches(false);
+            if(contentType != null){
+                connection.setRequestProperty("Content-Type", contentType);
+            }
+            connection.connect();
+            if(data != null){
+                OutputStream outputStream = connection.getOutputStream();
+                outputStream.write(data.getBytes("utf-8"));
+                outputStream.close();
+            }
+            int responseCode = connection.getResponseCode();
+            if (responseCode == HttpsURLConnection.HTTP_OK) {
+               return  connection.getInputStream();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+//            if(connection != null){
+//                connection.disconnect();
+//            }
+
+        }
+        return null;
+    }
     public static String connectionHttp(String url,String method,String data,String contentType ){
         HttpURLConnection connection = null;
         try {
@@ -132,16 +241,21 @@
     }
 
 
-    public static void main(String[] args) {
+    public static void main(String[] args) throws IOException {
         //灞�閮ㄤ俊浠绘墍鏈夎瘉涔﹀拰涓绘満
-        String result = HttpsUtil.get("https://127.0.0.1:8443/ssl-test/test01.do",true);
-        System.out.println(result);
-
-        //澶栭儴淇′换鎵�鏈夎瘉涔﹀拰涓绘満
-        HttpsTrustManager.allowAllSSL();
-        String response = HttpsUtil.get("https://127.0.0.1:8443/ssl-test/test01.do", false);
-        System.out.println(result);
-
+        InputStream result = HttpsUtil.connectionInputsteam(
+                "https://atwl.ahzyssl.com/zhyq_ftp/company_documents/20250630/e4205bc2-c5d3-48c7-ae2e-9690c009e481.txt",
+                "GET",null,null );
+        try (BufferedInputStream bufferedInputStream = new BufferedInputStream(result);
+             FileOutputStream outputStream = new FileOutputStream("D://temp.txt")) {
+            byte[] buffer = new byte[1024];
+            int bytesRead;
+            while ((bytesRead = bufferedInputStream.read(buffer)) != -1) {
+                outputStream.write(buffer, 0, bytesRead);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
     }
 }
 

--
Gitblit v1.9.3