From 80d8f7d7583735a2918b428107666b6cd60a5229 Mon Sep 17 00:00:00 2001 From: whb <17803890193@163.com> Date: Fri, 2 Aug 2024 09:25:26 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=B8=8A=E4=BC=A0=E7=9A=84ip?= =?UTF-8?q?yenb=E6=96=87=E4=BB=B6=E5=90=8D=E4=B9=B1=E7=A0=81=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../new_module/stu/JupyterhubController.java | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/sztzjy/resource_center/controller/new_module/stu/JupyterhubController.java b/src/main/java/com/sztzjy/resource_center/controller/new_module/stu/JupyterhubController.java index bd52a30..a2d65c3 100644 --- a/src/main/java/com/sztzjy/resource_center/controller/new_module/stu/JupyterhubController.java +++ b/src/main/java/com/sztzjy/resource_center/controller/new_module/stu/JupyterhubController.java @@ -16,7 +16,9 @@ import org.apache.http.HttpResponse; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; +import org.apache.http.entity.mime.HttpMultipartMode; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.entity.mime.content.ByteArrayBody; import org.apache.http.impl.client.CloseableHttpClient; @@ -132,14 +134,39 @@ public class JupyterhubController { } } +// public static void uploadFile(String url, MultipartFile file, String caseName) throws IOException { +// try (CloseableHttpClient httpClient = HttpClients.createDefault()) { +// HttpPost uploadFile = new HttpPost(url); +// +// // Build the multipart entity +// MultipartEntityBuilder builder = MultipartEntityBuilder.create(); +// builder.addPart("file", new ByteArrayBody(file.getBytes(), file.getOriginalFilename())); // Use ByteArrayBody for MultipartFile +// builder.addTextBody("caseName", caseName); +// +// HttpEntity entity = builder.build(); +// uploadFile.setEntity(entity); +// +// // Execute the request +// try (CloseableHttpResponse response = httpClient.execute(uploadFile)) { +// HttpEntity responseEntity = response.getEntity(); +// String responseString = EntityUtils.toString(responseEntity, "UTF-8"); +// System.out.println("Response: " + responseString); +// } +// } +// } + public static void uploadFile(String url, MultipartFile file, String caseName) throws IOException { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpPost uploadFile = new HttpPost(url); // Build the multipart entity MultipartEntityBuilder builder = MultipartEntityBuilder.create(); - builder.addPart("file", new ByteArrayBody(file.getBytes(), file.getOriginalFilename())); // Use ByteArrayBody for MultipartFile - builder.addTextBody("caseName", caseName); + + // Use ByteArrayBody with proper encoding for the file name + ByteArrayBody byteArrayBody = new ByteArrayBody(file.getBytes(), file.getOriginalFilename()); + builder.addPart("file", byteArrayBody); + builder.addTextBody("caseName", caseName, ContentType.TEXT_PLAIN.withCharset("UTF-8")); + builder.setMode(HttpMultipartMode.RFC6532);//解决文件名乱码问题 HttpEntity entity = builder.build(); uploadFile.setEntity(entity); @@ -147,7 +174,8 @@ public class JupyterhubController { // Execute the request try (CloseableHttpResponse response = httpClient.execute(uploadFile)) { HttpEntity responseEntity = response.getEntity(); - String responseString = EntityUtils.toString(responseEntity); + // Convert response entity to String with UTF-8 encoding + String responseString = EntityUtils.toString(responseEntity, "UTF-8"); System.out.println("Response: " + responseString); } }