Я пытаюсь отправить путь к файлу Rest Api через DataOutputStream.DataOutputStream преобразует строку в байты, и у меня возникают проблемы с преобразованием байта обратно в желаемую строку.Вот мой метод, который вызывает Api
private void sendFilePath(String filePath) {
try {
URL url = new URL("http://localhost:8080/uploadExcelFile");
HttpURLConnection connection = (HttpURLConnection)
url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/x-www-
form-urlencoded");
connection.setDoOutput(true);
connection.setDoInput(true);
DataOutputStream outputStream = new
DataOutputStream(connection.getOutputStream());
outputStream.writeBytes(filePath);
outputStream.flush();
outputStream.close();
connection.getResponseCode();
} catch (IOException e) {
e.printStackTrace();
}
}
, а вот метод контроллера aka Api
@PostMapping("/uploadExcelFile")
public HttpStatus uploadFile(@RequestBody byte[] byteFilePath) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write(byteFilePath);
String filePath = baos.toString();
Workbook workbook = WorkbookFactory.create(new File(filePath));
List<StudentModel> students = studentService.convertExcelToData(workbook);
return studentHandler.createStudent(students);
} catch (InvalidFormatException | IOException e) {
e.printStackTrace();
return HttpStatus.BAD_REQUEST;
}
}
Аргумент filepath в sendFilePath () равен D:\Projects\AutoFeeChallan\Aptech Student Records.xlsx
, в то время кактот, который я получаю в uploadApi после преобразования в String: D%3A%5CProjects%5CAutoFeeChallan%5CAptech+Student+Records.xlsx=
Мне нужен тот же путь в методе контроллера, который я посылаю в качестве аргумента в sendFilePath ().Можете ли вы предложить какое-либо решение или другие методы для решения этой проблемы.