From 1b7ed7edb09aaecf68ddf3396ee007bc6eadf52a Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期一, 30 十二月 2024 17:04:09 +0800 Subject: [PATCH] zjh202412030 --- ltkj-admin/src/main/java/com/ltkj/web/wxUtils/HttpClientUtils.java | 226 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 226 insertions(+), 0 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 2299525..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 @@ -26,10 +26,12 @@ 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; /** @@ -135,6 +137,185 @@ } 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(); } /** @@ -346,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