From e71bd87b3f06a7357ee5142c8f538736e7ef1efa Mon Sep 17 00:00:00 2001 From: qirong <2032486488@qq.com> Date: 星期三, 28 二月 2024 10:00:17 +0800 Subject: [PATCH] 修改 --- ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/uitil/HttpUtils.java | 199 +++++++++++++++++++++++-------------------------- 1 files changed, 92 insertions(+), 107 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/uitil/HttpUtils.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/uitil/HttpUtils.java index 78e5ad3..df3f77b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/uitil/HttpUtils.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/uitil/HttpUtils.java @@ -1,9 +1,11 @@ package org.dromara.system.uitil; +import cn.hutool.json.JSON; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.StringRequestEntity; +import org.apache.commons.io.IOUtils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; @@ -13,44 +15,18 @@ import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import org.dromara.common.oss.entity.SynchronousRequest; +import org.dromara.common.oss.entity.SynchronousRequest2; +import org.dromara.common.oss.entity.VideoRequest; import org.springframework.web.multipart.MultipartFile; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.HashMap; public class HttpUtils { - public static String sendPostWithJson(String url, String jsonStr, HashMap<String,String> headers) { - // 杩斿洖鐨勭粨鏋� - String jsonResult = ""; - try { - HttpClient client = new HttpClient(); - // 杩炴帴瓒呮椂 - client.getHttpConnectionManager().getParams().setConnectionTimeout(3*1000); - // 璇诲彇鏁版嵁瓒呮椂 - client.getHttpConnectionManager().getParams().setSoTimeout(3*60*1000); - client.getParams().setContentCharset("UTF-8"); - PostMethod postMethod = new PostMethod(url); - - postMethod.setRequestHeader("content-type", headers.get("content-type")); - - // 闈炵┖ - if (null != jsonStr && !"".equals(jsonStr)) { - StringRequestEntity requestEntity = new StringRequestEntity(jsonStr, headers.get("content-type"), "UTF-8"); - postMethod.setRequestEntity(requestEntity); - } - int status = client.executeMethod(postMethod); - if (status == HttpStatus.SC_OK) { - jsonResult = postMethod.getResponseBodyAsString(); - } else { - throw new RuntimeException("鎺ュ彛杩炴帴澶辫触锛�"); - } - } catch (Exception e) { - throw new RuntimeException("鎺ュ彛杩炴帴澶辫触锛�"); - } - return jsonResult; - } private static final String BOUNDARY = "----WebKitFormBoundary7MA4YWxkTrZu0gW"; private static final String LINE_FEED = "\r\n"; @@ -62,59 +38,8 @@ return file; } - public static void sendPostRequest(String url, String stringParam, File fileParam) throws Exception { - - URL obj = new URL(url); - HttpURLConnection con = (HttpURLConnection) obj.openConnection(); - - // 璁剧疆POST璇锋眰 - con.setRequestMethod("POST"); - con.setDoOutput(true); - con.setDoInput(true); - con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDARY); - - // 鏋勫缓璇锋眰浣� - DataOutputStream wr = new DataOutputStream(con.getOutputStream()); - wr.writeBytes("--" + BOUNDARY + LINE_FEED); - wr.writeBytes("Content-Disposition: form-data; name=\"stringParam\"" + LINE_FEED); - wr.writeBytes(LINE_FEED); - wr.writeBytes(stringParam + LINE_FEED); - - wr.writeBytes("--" + BOUNDARY + LINE_FEED); - wr.writeBytes("Content-Disposition: form-data; name=\"fileParam\"; filename=\"" + fileParam.getName() + "\"" + LINE_FEED); - wr.writeBytes("Content-Type: " + HttpURLConnection.guessContentTypeFromName(fileParam.getName()) + LINE_FEED); - wr.writeBytes("Content-Transfer-Encoding: binary" + LINE_FEED); - wr.writeBytes(LINE_FEED); - - FileInputStream inputStream = new FileInputStream(fileParam); - byte[] buffer = new byte[4096]; - int bytesRead = -1; - while ((bytesRead = inputStream.read(buffer)) != -1) { - wr.write(buffer, 0, bytesRead); - } - wr.writeBytes(LINE_FEED); - wr.writeBytes("--" + BOUNDARY + "--" + LINE_FEED); - - wr.flush(); - wr.close(); - - // 鍙戦�佽姹傚苟鑾峰彇鍝嶅簲 - int responseCode = con.getResponseCode(); - BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); - String inputLine; - StringBuffer response = new StringBuffer(); - while ((inputLine = in.readLine()) != null) { - response.append(inputLine); - } - in.close(); - - // 鎵撳嵃鍝嶅簲缁撴灉 - System.out.println("Response Code : " + responseCode); - System.out.println("Response : " + response.toString()); - } - /** - * 涓婁紶鍚屾 + * 涓婁紶鍚屾 瑙嗛涓撶綉 -- 鍏畨鍐呯綉 * @param url * @param entity * @return @@ -124,6 +49,7 @@ org.apache.http.client.HttpClient httpClient = HttpClientBuilder.create().build(); HttpPost httpPost = new HttpPost(url); + ContentType contentType = ContentType.create("multipart/form-data", StandardCharsets.UTF_8); MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); @@ -135,6 +61,8 @@ builder.addTextBody("ossId", entity.getOssId(), ContentType.TEXT_PLAIN); builder.addTextBody("createBy", entity.getCreateBy(), ContentType.TEXT_PLAIN); builder.addTextBody("password", entity.getPassword(), ContentType.TEXT_PLAIN); + builder.addTextBody("fileName", entity.getFileName(), contentType); + builder.addTextBody("createTime", entity.getCreateTime(), ContentType.TEXT_PLAIN); HttpEntity multipart = builder.build(); httpPost.setEntity(multipart); @@ -146,36 +74,42 @@ } /** + * 涓婁紶鍚屾 瑙嗛涓撶綉 + * @param url + * @param entity + * @return + * @throws IOException + */ + public static String sendPostRequest2(String url, VideoRequest entity) throws IOException { + org.apache.http.client.HttpClient httpClient = HttpClientBuilder.create().build(); + HttpPost httpPost = new HttpPost(url); + + ContentType contentType = ContentType.create("multipart/form-data", StandardCharsets.UTF_8); + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); + + // 娣诲姞MultipartFile鍙傛暟 + builder.addBinaryBody("file", entity.getFile().getBytes(), ContentType.MULTIPART_FORM_DATA, entity.getFile().getOriginalFilename()); + + // 娣诲姞String鍙傛暟 + builder.addTextBody("fileName", entity.getFileName(), contentType); + + HttpEntity multipart = builder.build(); + httpPost.setEntity(multipart); + + HttpResponse response = httpClient.execute(httpPost); + String responseBody = EntityUtils.toString(response.getEntity()); + System.out.println("Response: " + responseBody); + return responseBody; + } + + + /** * 鍒犻櫎鍚屾 * @param url // * @param parameter * @throws Exception */ -// public static void sendDeleteRequest(String url, String parameter) throws Exception { -// // 鎷兼帴URL鍜屽弬鏁� -// String deleteUrl = url + "/" + parameter; -// -// // 鍒涘缓URL瀵硅薄鍜孒ttpURLConnection瀵硅薄 -// URL obj = new URL(deleteUrl); -// HttpURLConnection con = (HttpURLConnection) obj.openConnection(); -// -// // 璁剧疆璇锋眰鏂规硶涓篋ELETE -// con.setRequestMethod("DELETE"); -// -// // 鍙戦�佽姹傚苟鑾峰彇鍝嶅簲 -// int responseCode = con.getResponseCode(); -// BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); -// String inputLine; -// StringBuffer response = new StringBuffer(); -// while ((inputLine = in.readLine()) != null) { -// response.append(inputLine); -// } -// in.close(); -// -// // 鎵撳嵃鍝嶅簲缁撴灉 -// System.out.println("Response Code : " + responseCode); -// System.out.println("Response : " + response.toString()); -// } public static String sendDeleteRequest(String url, String ossId) throws IOException { org.apache.http.client.HttpClient httpClient = HttpClientBuilder.create().build(); HttpPost httpPost = new HttpPost(url); @@ -197,5 +131,56 @@ System.out.println("Response: " + responseBody); return responseBody; } + + + /** + * 涓婁紶鍚屾 瑙嗛涓撶綉 -- 鍏畨鍐呯綉锛堝畾鏃讹級 + * @param url + * @param entity + * @return + * @throws IOException + */ + public static String sendPostRequest2(String url, SynchronousRequest entity, byte[] bytes) throws IOException { + org.apache.http.client.HttpClient httpClient = HttpClientBuilder.create().build(); + HttpPost httpPost = new HttpPost(url); + + ContentType contentType = ContentType.create("multipart/form-data", StandardCharsets.UTF_8); + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); + + // 娣诲姞MultipartFile鍙傛暟 + builder.addBinaryBody("file", bytes, ContentType.MULTIPART_FORM_DATA, entity.getFileName()); + + // 娣诲姞String鍙傛暟 + builder.addTextBody("path", entity.getPath(), ContentType.TEXT_PLAIN); + builder.addTextBody("ossId", entity.getOssId(), ContentType.TEXT_PLAIN); + builder.addTextBody("createBy", entity.getCreateBy(), ContentType.TEXT_PLAIN); + builder.addTextBody("password", entity.getPassword(), ContentType.TEXT_PLAIN); + builder.addTextBody("fileName", entity.getFileName(), contentType); + builder.addTextBody("createTime", entity.getCreateTime(), ContentType.TEXT_PLAIN); + + HttpEntity multipart = builder.build(); + httpPost.setEntity(multipart); + + HttpResponse response = httpClient.execute(httpPost); + String responseBody = EntityUtils.toString(response.getEntity()); + System.out.println("Response: " + responseBody); + return responseBody; + } + + /** + * @param input 杈撳叆娴� + * @return byte[] 鏁扮粍 + */ + public static byte[] inputStream2byte(InputStream input) throws IOException { + ByteArrayOutputStream output = new ByteArrayOutputStream(); + byte[] buffer = new byte[4096]; + int n = 0; + while (-1 != (n = input.read(buffer))) { + output.write(buffer, 0, n); + } + return output.toByteArray(); + } + } -- Gitblit v1.8.0