Как отправить список файлов по RESTEasy Java - PullRequest
0 голосов
/ 02 апреля 2019

Как мы можем отправить список файлов с помощью Java-клиента RESTEasy? Весенний ОТДЫХ составляет:

@PostMapping()
public ResponseEntity<?> send(@RequestPart(value = "message") String message, @RequestPart(value = "attachment", required = false) List<MultipartFile> attachments)

В Postman это делается путем указания нескольких файлов в данных формы с одним ключом «attachment», но MultipartFormDataOutput имеет Map внутри, поэтому он запоминает только последний добавленный файл.

1 Ответ

0 голосов
/ 03 апреля 2019

Я решил эту проблему с помощью org.apache.http.entity.mime.MultipartEntityBuilder:

MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("message", messageStr, ContentType.TEXT_PLAIN.withCharset(UTF_8));
for (File file: files) {
    builder.addBinaryBody(
            "attachment",
            new FileInputStream(file),
            ContentType.APPLICATION_OCTET_STREAM,
            file.getName()
    );
}
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost uploadFile = new HttpPost(url);
uploadFile.setEntity(builder.build());
CloseableHttpResponse response = httpClient.execute(uploadFile);
...