From e14e4217b3f53a5cad511b4331cd7c0a40a40db2 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期四, 19 十二月 2024 13:52:03 +0800
Subject: [PATCH] zjh202412019

---
 ltkj-admin/src/main/java/com/ltkj/web/wxUtils/HttpClientUtils.java |  302 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 294 insertions(+), 8 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/wxUtils/HttpClientUtils.java b/ltkj-admin/src/main/java/com/ltkj/web/wxUtils/HttpClientUtils.java
index 6b8b492..88623b0 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/wxUtils/HttpClientUtils.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/wxUtils/HttpClientUtils.java
@@ -1,6 +1,8 @@
 package com.ltkj.web.wxUtils;
 
 
+import cn.hutool.json.JSONUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpResponse;
 import org.apache.http.NameValuePair;
@@ -21,19 +23,24 @@
 import org.apache.http.message.BasicNameValuePair;
 import org.apache.http.util.EntityUtils;
 import org.springframework.stereotype.Component;
-
 import java.io.*;
+import java.net.HttpURLConnection;
 import java.net.URL;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 
 /**
  * httpClient 宸ュ叿绫�
+ *
  * @create 2019-02-10 涓嬪崍 2:49
  */
 @Component
+@Slf4j
 public class HttpClientUtils {
 
     /**
@@ -46,20 +53,24 @@
 
     /**
      * 闈欐�佸唴閮ㄧ被---浣滅敤锛氬崟渚嬩骇鐢熺被鐨勫疄渚�
-     * @author Administrator
      *
+     * @author Administrator
      */
     private static class LazyHolder {
         private static final HttpClientUtils INSTANCE = new HttpClientUtils();
 
     }
-    HttpClientUtils(){}
-    public static HttpClientUtils getInstance(){
+
+    HttpClientUtils() {
+    }
+
+    public static HttpClientUtils getInstance() {
         return LazyHolder.INSTANCE;
     }
 
     /**
      * 鍙戦�� post璇锋眰
+     *
      * @param httpUrl 鍦板潃
      */
     public String sendHttpPost(String httpUrl) {
@@ -69,8 +80,9 @@
 
     /**
      * 鍙戦�� post璇锋眰
+     *
      * @param httpUrl 鍦板潃
-     * @param params 鍙傛暟(鏍煎紡:key1=value1&key2=value2)
+     * @param params  鍙傛暟(鏍煎紡:key1=value1&key2=value2)
      */
     public String sendHttpPost(String httpUrl, String params) {
         HttpPost httpPost = new HttpPost(httpUrl);// 鍒涘缓httpPost
@@ -85,10 +97,232 @@
         return sendHttpPost(httpPost);
     }
 
+
+    public static String sendPost(String httpUrl, Map<String, Object> maps) {
+
+        try {
+            // 1. 鍒涘缓 URL 瀵硅薄
+            URL url = new URL(httpUrl);
+            // 2. 鍒涘缓 HttpURLConnection 瀵硅薄
+            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+            // 3. 璁剧疆璇锋眰鏂规硶涓� POST
+            connection.setRequestMethod("POST");
+            // 4. 璁剧疆 Content-Type 澶撮儴瀛楁
+            connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
+            // 6. 鍚戞湇鍔″櫒鍙戦�佹暟鎹�
+            String requestBody = JSONUtil.toJsonStr(maps);
+            log.info(httpUrl+"鍏ュ弬:   "+requestBody);
+//            String requestBody1 = maps.toString();
+            byte[] postData = requestBody.getBytes("UTF-8");
+            connection.setDoOutput(true);
+            try (OutputStream outputStream = connection.getOutputStream()) {
+                outputStream.write(postData);
+            }
+
+            // 8. 鑾峰彇鍝嶅簲鏁版嵁
+            try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) {
+                String line;
+                StringBuilder response = new StringBuilder();
+                while ((line = reader.readLine()) != null) {
+                    response.append(line);
+                }
+                log.info("=====================================================");
+                log.info(httpUrl+"鍑哄弬");
+                log.info(response.toString());
+                connection.disconnect();
+                return response.toString();
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        return null;
+    }
+
+    public static String sendPostToken(String httpUrl, Map<String, Object> maps,String authorization) {
+
+        try {
+            // 1. 鍒涘缓 URL 瀵硅薄
+            URL url = new URL(httpUrl);
+            // 2. 鍒涘缓 HttpURLConnection 瀵硅薄
+            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+            // 3. 璁剧疆璇锋眰鏂规硶涓� POST
+            connection.setRequestMethod("POST");
+            // 4. 璁剧疆 Content-Type 澶撮儴瀛楁
+            connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
+            connection.setRequestProperty("Authorization", authorization);
+            // 6. 鍚戞湇鍔″櫒鍙戦�佹暟鎹�
+            String requestBody = JSONUtil.toJsonStr(maps);
+            log.info(httpUrl+"鍏ュ弬:   "+requestBody);
+//            String requestBody1 = maps.toString();
+            byte[] postData = requestBody.getBytes("UTF-8");
+            connection.setDoOutput(true);
+            try (OutputStream outputStream = connection.getOutputStream()) {
+                outputStream.write(postData);
+            }
+
+            // 8. 鑾峰彇鍝嶅簲鏁版嵁
+            try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) {
+                String line;
+                StringBuilder response = new StringBuilder();
+                while ((line = reader.readLine()) != null) {
+                    response.append(line);
+                }
+                log.info("=====================================================");
+                log.info(httpUrl+"鍑哄弬");
+                log.info(response.toString());
+                connection.disconnect();
+                return response.toString();
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        return null;
+    }
+
+    public static String sendPostTokenFormUrlencoded(String httpUrl, Map<String, Object> maps, String authorization) {
+        HttpURLConnection connection = null;
+        OutputStreamWriter writer = null;
+        BufferedReader reader = null;
+        StringBuilder response = new StringBuilder();
+
+        try {
+            // 鍒涘缓 URL 瀵硅薄
+            URL url = new URL(httpUrl);
+            // 鎵撳紑杩炴帴
+            connection = (HttpURLConnection) url.openConnection();
+
+            // 璁剧疆璇锋眰鏂规硶涓� POST
+            connection.setRequestMethod("POST");
+            // 璁剧疆璇锋眰澶� Content-Type 涓� application/x-www-form-urlencoded
+            connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
+
+            // 濡傛灉闇�瑕� Authorization Header
+            if (authorization != null && !authorization.isEmpty()) {
+                connection.setRequestProperty("Authorization", authorization);
+            }
+
+            // 璁剧疆鍏佽杈撳嚭
+            connection.setDoOutput(true);
+
+            // 鏋勫缓琛ㄥ崟鏁版嵁
+            StringBuilder postData = new StringBuilder();
+            for (Map.Entry<String, Object> entry : maps.entrySet()) {
+                if (postData.length() > 0) {
+                    postData.append("&");
+                }
+                postData.append(URLEncoder.encode(entry.getKey(), "UTF-8"))
+                        .append("=")
+                        .append(URLEncoder.encode(entry.getValue().toString(), "UTF-8"));
+            }
+
+            // 鑾峰彇杈撳嚭娴佸苟鍐欏叆琛ㄥ崟鏁版嵁
+            writer = new OutputStreamWriter(connection.getOutputStream());
+            writer.write(postData.toString());
+            writer.flush();
+
+            // 鑾峰彇鍝嶅簲
+            reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+            String line;
+            while ((line = reader.readLine()) != null) {
+                response.append(line);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        } finally {
+            // 鍏抽棴娴�
+            try {
+                if (writer != null) writer.close();
+                if (reader != null) reader.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+            if (connection != null) {
+                connection.disconnect();
+            }
+        }
+        return response.toString();
+    }
+
+    public static String sendPostTokenFormData(String httpUrl, Map<String, Object> maps, String authorization) {
+        HttpURLConnection connection = null;
+        DataOutputStream outStream = null;
+        BufferedReader reader = null;
+        StringBuilder response = new StringBuilder();
+
+        // 杈圭晫瀛楃涓�
+        String boundary = "----WebKitFormBoundary" + UUID.randomUUID().toString().replaceAll("-", "");
+        String CRLF = "\r\n"; // 鎹㈣绗�
+
+        try {
+            // 鍒涘缓 URL 瀵硅薄
+            URL url = new URL(httpUrl);
+            // 鎵撳紑杩炴帴
+            connection = (HttpURLConnection) url.openConnection();
+
+            // 璁剧疆璇锋眰鏂规硶涓� POST
+            connection.setRequestMethod("POST");
+            // 璁剧疆璇锋眰澶� Content-Type 涓� multipart/form-data
+            connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
+
+            // 濡傛灉闇�瑕� Authorization Header
+            if (authorization != null && !authorization.isEmpty()) {
+                connection.setRequestProperty("Authorization", authorization);
+            }
+
+            // 璁剧疆鍏佽杈撳嚭
+            connection.setDoOutput(true);
+
+            // 鑾峰彇杈撳嚭娴�
+            outStream = new DataOutputStream(connection.getOutputStream());
+
+            // 閬嶅巻浼犲叆鐨勮〃鍗曟暟鎹紝骞舵寜鐓� multipart/form-data 鏍煎紡鍐欏叆
+            for (Map.Entry<String, Object> entry : maps.entrySet()) {
+                outStream.writeBytes("--" + boundary + CRLF);
+                outStream.writeBytes("Content-Disposition: form-data; name=\"" + entry.getKey() + "\"" + CRLF);
+                outStream.writeBytes("Content-Type: text/plain; charset=UTF-8" + CRLF);
+                outStream.writeBytes(CRLF);  // 杩欓噷鏄垎闅旂锛岀┖涓�琛�
+                outStream.writeBytes(entry.getValue().toString() + CRLF);
+            }
+
+            // 缁撴潫 multipart/form-data 鍙戦�佹暟鎹儴鍒�
+            outStream.writeBytes("--" + boundary + "--" + CRLF);
+
+            // 鍒锋柊杈撳嚭娴�
+            outStream.flush();
+
+            // 鑾峰彇鍝嶅簲
+            reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+            String line;
+            while ((line = reader.readLine()) != null) {
+                response.append(line);
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        } finally {
+            // 鍏抽棴娴�
+            try {
+                if (outStream != null) outStream.close();
+                if (reader != null) reader.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+            if (connection != null) {
+                connection.disconnect();
+            }
+        }
+        return response.toString();
+    }
+
     /**
      * 鍙戦�� post璇锋眰
+     *
      * @param httpUrl 鍦板潃
-     * @param maps 鍙傛暟
+     * @param maps    鍙傛暟
      */
     public String sendHttpPost(String httpUrl, Map<String, String> maps) {
         HttpPost httpPost = new HttpPost(httpUrl);// 鍒涘缓httpPost
@@ -105,8 +339,10 @@
         return sendHttpPost(httpPost);
     }
 
+
     /**
      * 鍙戦�丳ost璇锋眰
+     *
      * @param httpPost
      * @return
      */
@@ -123,12 +359,12 @@
             long execStart = System.currentTimeMillis();
             response = httpClient.execute(httpPost);
             long execEnd = System.currentTimeMillis();
-            System.out.println("=================鎵цpost璇锋眰鑰楁椂锛�"+(execEnd-execStart)+"ms");
+            System.out.println("=================鎵цpost璇锋眰鑰楁椂锛�" + (execEnd - execStart) + "ms");
             long getStart = System.currentTimeMillis();
             entity = response.getEntity();
             responseContent = EntityUtils.toString(entity, "UTF-8");
             long getEnd = System.currentTimeMillis();
-            System.out.println("=================鑾峰彇鍝嶅簲缁撴灉鑰楁椂锛�"+(getEnd-getStart)+"ms");
+            System.out.println("=================鑾峰彇鍝嶅簲缁撴灉鑰楁椂锛�" + (getEnd - getStart) + "ms");
         } catch (Exception e) {
             e.printStackTrace();
         } finally {
@@ -149,6 +385,7 @@
 
     /**
      * 鍙戦�� get璇锋眰
+     *
      * @param httpUrl
      */
     public String sendHttpGet(String httpUrl) {
@@ -158,6 +395,7 @@
 
     /**
      * 鍙戦�� get璇锋眰Https
+     *
      * @param httpUrl
      */
     public String sendHttpsGet(String httpUrl) {
@@ -167,6 +405,7 @@
 
     /**
      * 鍙戦�丟et璇锋眰
+     *
      * @param httpGet
      * @return
      */
@@ -206,6 +445,7 @@
 
     /**
      * 鍙戦�丟et璇锋眰Https
+     *
      * @param httpGet
      * @return
      */
@@ -244,6 +484,7 @@
 
     /**
      * 鍙戦�亁ml鏁版嵁
+     *
      * @param url
      * @param xmlData
      * @return
@@ -286,4 +527,49 @@
     }
 
 
+
+    public static String sendPost(String httpUrl, Map<String, Object> maps,String token) {
+
+        try {
+            // 1. 鍒涘缓 URL 瀵硅薄
+            URL url = new URL(httpUrl);
+            // 2. 鍒涘缓 HttpURLConnection 瀵硅薄
+            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+            // 3. 璁剧疆璇锋眰鏂规硶涓� POST
+            connection.setRequestMethod("POST");
+            // 4. 璁剧疆 Content-Type 澶撮儴瀛楁
+            connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
+            //璁剧疆璇锋眰token
+            connection.setRequestProperty("Authorization",token);
+            // 6. 鍚戞湇鍔″櫒鍙戦�佹暟鎹�
+            String requestBody = JSONUtil.toJsonStr(maps);
+            log.info(httpUrl+"鍏ュ弬:   "+requestBody);
+//            String requestBody1 = maps.toString();
+            byte[] postData = requestBody.getBytes("UTF-8");
+            connection.setDoOutput(true);
+            try (OutputStream outputStream = connection.getOutputStream()) {
+                outputStream.write(postData);
+            }
+
+            // 8. 鑾峰彇鍝嶅簲鏁版嵁
+            try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) {
+                String line;
+                StringBuilder response = new StringBuilder();
+                while ((line = reader.readLine()) != null) {
+                    response.append(line);
+                }
+                log.info("=====================================================");
+                log.info(httpUrl+"鍑哄弬");
+                log.info(response.toString());
+                connection.disconnect();
+                return response.toString();
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        return null;
+    }
+
+
 }

--
Gitblit v1.8.0