From f4c32b085ae9fb1f57fb185c9010c01ffd352805 Mon Sep 17 00:00:00 2001 From: Alexandr Shalaginov Date: Wed, 17 Jul 2024 10:42:35 +0300 Subject: [PATCH] SUPPORT-8381: fix by review (3) --- ...oyeeInformationFileWebDavUploadClient.java | 31 +++++++------------ 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/backend/src/main/java/ervu/client/fileupload/EmployeeInformationFileWebDavUploadClient.java b/backend/src/main/java/ervu/client/fileupload/EmployeeInformationFileWebDavUploadClient.java index 1fc55bfd..df9cf002 100644 --- a/backend/src/main/java/ervu/client/fileupload/EmployeeInformationFileWebDavUploadClient.java +++ b/backend/src/main/java/ervu/client/fileupload/EmployeeInformationFileWebDavUploadClient.java @@ -1,10 +1,10 @@ package ervu.client.fileupload; -import java.io.BufferedOutputStream; import java.io.IOException; -import java.io.OutputStream; -import java.net.HttpURLConnection; -import java.net.URL; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -24,23 +24,14 @@ public class EmployeeInformationFileWebDavUploadClient { public boolean webDavUploadFile(String filename, MultipartFile multipartFile) { try { - HttpURLConnection connection = (HttpURLConnection) new URL(this.url + "/" + filename).openConnection(); - connection.setDoInput(true); - connection.setDoOutput(true); - connection.setRequestMethod("PUT"); - - OutputStream outputStream = new BufferedOutputStream(connection.getOutputStream()); - - outputStream.write(multipartFile.getBytes()); - outputStream.flush(); - outputStream.close(); - int responseCode = connection.getResponseCode(); - connection.disconnect(); - return (responseCode >= 200) && (responseCode <= 202); + HttpClient httpClient = HttpClient.newBuilder().build(); + HttpRequest httpRequest = HttpRequest.newBuilder().uri(URI.create(this.url + "/" + filename)) + .PUT(HttpRequest.BodyPublishers.ofByteArray(multipartFile.getBytes())).build(); + HttpResponse response = httpClient.send(httpRequest, HttpResponse.BodyHandlers.ofString()); + return (response.statusCode() >= 200) && (response.statusCode() <= 202); } - catch (IOException e) { - logger.error("Fail upload file: " + filename, e); - return false; + catch (IOException | InterruptedException e) { + throw new RuntimeException(e); } } }