From 53d149f491dba554ee035599059a1bf65ea92df2 Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期三, 12 二月 2025 17:36:13 +0800 Subject: [PATCH] 增加手动同步lis接口 --- ltkj-admin/src/main/java/com/ltkj/web/wxUtils/HttpClientUtils.java | 252 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 238 insertions(+), 14 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 6412b31..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; @@ -24,9 +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; /** @@ -35,6 +40,7 @@ * @create 2019-02-10 涓嬪崍 2:49 */ @Component +@Slf4j public class HttpClientUtils { /** @@ -99,36 +105,30 @@ 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"); - - // 5. 璁剧疆鍏朵粬璇锋眰澶撮儴瀛楁锛堝彲閫夛級 -// connection.setRequestProperty("Authorization", "Bearer token"); -// connection.setRequestProperty("User-Agent", "Mozilla/5.0"); - + connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); // 6. 鍚戞湇鍔″櫒鍙戦�佹暟鎹� - String requestBody = maps.toString(); + 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); } - // 7. 鑾峰彇鍝嶅簲鐮� - int responseCode = connection.getResponseCode(); - // 8. 鑾峰彇鍝嶅簲鏁版嵁 - try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) { + 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); } - System.out.println(response.toString()); + log.info("====================================================="); + log.info(httpUrl+"鍑哄弬"); + log.info(response.toString()); connection.disconnect(); return response.toString(); } @@ -137,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(); } /** @@ -348,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