From 04dba6a17f836b5fbdf0eedff8a129c6785fd8a2 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期五, 28 二月 2025 18:25:00 +0800 Subject: [PATCH] 111 --- server/services/src/main/java/com/doumee/core/utils/HttpsUtil.java | 160 ++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 116 insertions(+), 44 deletions(-) diff --git a/server/services/src/main/java/com/doumee/core/utils/HttpsUtil.java b/server/services/src/main/java/com/doumee/core/utils/HttpsUtil.java index 291d14f..809e79d 100644 --- a/server/services/src/main/java/com/doumee/core/utils/HttpsUtil.java +++ b/server/services/src/main/java/com/doumee/core/utils/HttpsUtil.java @@ -1,25 +1,16 @@ package com.doumee.core.utils; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.utils.URIBuilder; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.util.EntityUtils; - import javax.net.ssl.*; import java.io.ByteArrayOutputStream; -import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.net.URI; +import java.net.HttpURLConnection; 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; -import java.util.Map; public class HttpsUtil { @@ -29,6 +20,13 @@ public static String post(String url, String data, String contentType, boolean ignoreSSL) { return connection(url, "POST", data, contentType, ignoreSSL); + } + public static String postJsonString(String url, String data) { + if(url.startsWith("https://")){ + return connection(url, "POST", data, "application/json", true); + }else{ + return connectionHttp(url, "POST", data, "application/json"); + } } public static String connection(String url,String method,String data,String contentType,boolean ignoreSSL){ @@ -89,49 +87,81 @@ } return null; } - - /** - * 鍙戦�乬et璇锋眰 - * @param url 璇锋眰URL - * @param param 璇锋眰鍙傛暟 key:value url鎼哄甫鍙傛暟 鎴栬�呮棤鍙傚彲涓嶅~ - * @return - */ - public static String doGet(String url, Map<String, String> param) { - // 鍒涘缓Httpclient瀵硅薄 - CloseableHttpClient httpclient = HttpClients.createDefault(); - String resultString = ""; - CloseableHttpResponse response = null; + public static InputStream connectionInputsteam(String url,String method,String data,String contentType ){ + HttpURLConnection connection = null; try { - // 鍒涘缓uri - URIBuilder builder = new URIBuilder(url); - if (param != null) { - for (String key : param.keySet()) { - builder.addParameter(key, param.get(key)); - } + 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); } - URI uri = builder.build(); - // 鍒涘缓http GET璇锋眰 - HttpGet httpGet = new HttpGet(uri); - // 鎵ц璇锋眰 - response = httpclient.execute(httpGet); - // 鍒ゆ柇杩斿洖鐘舵�佹槸鍚︿负200 - if (response.getStatusLine().getStatusCode() == 200) { - resultString = EntityUtils.toString(response.getEntity(), "UTF-8"); + 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 { - try { - if (response != null) { - response.close(); - } - httpclient.close(); - } catch (IOException e) { - e.printStackTrace(); + if(connection != null){ + connection.disconnect(); } } - return resultString; + return null; } + public static String connectionHttp(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) { + InputStream is = connection.getInputStream(); + byte[] b = new byte[4096]; + ByteArrayOutputStream baos = new ByteArrayOutputStream(b.length); + int len; + while ((len = is.read(b)) != -1) { + baos.write(b, 0, len); + } + is.close(); + return baos.toString("utf-8"); + } + return connection.getResponseMessage(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if(connection != null){ + connection.disconnect(); + } + } + return null; + } + public static void main(String[] args) { //灞�閮ㄤ俊浠绘墍鏈夎瘉涔﹀拰涓绘満 @@ -144,6 +174,48 @@ System.out.println(result); } + public static InputStream postJson(String url, String data){ + HttpsURLConnection connection = null; + try { + URL _url = new URL(url); + connection = (HttpsURLConnection) _url.openConnection(); + connection.setRequestMethod("POST"); + connection.setDoOutput(true); + connection.setDoInput(true); + connection.setUseCaches(false); + connection.setRequestProperty("Content-Type", "application/json"); + connection.connect(); + //淇′换鎵�鏈塻sl璇佷功鍜屼富鏈� + TrustManager[] trustManagers = {new HttpsTrustManager()}; + SSLContext context = SSLContext.getInstance("TLS"); + context.init(null, trustManagers, new SecureRandom()); + connection.setSSLSocketFactory(context.getSocketFactory()); + connection.setHostnameVerifier(new HostnameVerifier() { + @Override + public boolean verify(String hostname, SSLSession session) { + return true; + } + }); + if(data != null){ + OutputStream outputStream = connection.getOutputStream(); + outputStream.write(data.getBytes("utf-8")); + outputStream.close(); + } + + int responseCode = connection.getResponseCode(); + if (responseCode == HttpsURLConnection.HTTP_OK) { + InputStream is = connection.getInputStream(); + return is; + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + if(connection != null){ + // connection.disconnect(); + } + } + return null; + } } class HttpsTrustManager implements X509TrustManager { -- Gitblit v1.9.3