в контроллере вроде все ок. Если же у вас параметры - это часть form-data, то надо использовать аннотации @RequestPart и все параметры помимо файла должны быть String
2. Теперь что касается ошибки в тесте. Мок файл вы создали правильно, но потом вы посылаете post() запрос с заголовком неявным application/json (пустое тело), поэтому сервер вам так и отвечает. Есть специальный метод для мультипарт реквеста.
final var file = new MockMultipartFile(
"file",
"test.json»,
"application/json»,
InputStream.nullInputStream()
);
…
final MockHttpServletRequestBuilder multipartRequest =
multipart("/files").file(file)
.with(csrf());
mockMvc.perform(multipartRequest)
.andExpect(status().isOk())
вот так делается через mockMvc, если вы хотите реальным клиентом сделать запрос, вроде рестизи, то наверно это вам подойдет - https://stackoverflow.com/questions/55222280/how-to-upload-a-multipart-file-using-org-jboss-resteasy-client-clientrequest
Я не поняла что это такое вообще MultipartFormDataOutput upload = new MultipartFormDataOutput(); upload.addFormData("file", targetStream, MediaType.MULTIPART_FORM_DATA_TYPE, "mytarfile.tar"); что они хотели сказать на стэковерфло???
как сделать аплоад и в то же самое время передать параметр в POST?
Form Data и @RequestPart
Поймите
Обсуждают сегодня