Я хотел бы отправить произвольное количество изображений во время запроса multipart/form-data.
Я нашел этот пример в руководстве:
https://github. com/OpenFeign/feign-form?tab=readme-ov-file#multipartform-data
// FormData parameter
@RequestLine("POST /send_photo")
@Headers("Content-Type: multipart/form-data")
void sendPhoto (@Param("is_public") Boolean isPublic, @Param("photo") FormData photo);
Это работает нормально, но я не могу заставить его работать с несколькими файлами. Я попытался изменить приведенный выше пример, чтобы он принимал List вместо FormData, но у меня это не сработало — файлы не загружаются. Например:
// client method:
@RequestLine("POST /send_photo")
@Headers("Content-Type: multipart/form-data")
void sendPhoto (@Param("photo") FormData photo);
// using above method
var myImageStream = MyClass.class.getResourceAsStream("/test.jpg");
var myImage = FormData.builder()
.fileName("test.jpg")
.contentType("image/jpeg")
.data(myImageStream.readAllBytes())
.build();
client.sendPhoto(true, myImage);
работает нормально, но когда я меняю подпись, чтобы принять список:
// client method:
@RequestLine("POST /send_photo")
@Headers("Content-Type: multipart/form-data")
void sendPhoto (@Param("photo") List photo);
// using above method
var myImageStream = MyClass.class.getResourceAsStream("/test.jpg");
var myImage = FormData.builder()
.fileName("test.jpg")
.contentType("image/jpeg")
.data(myImageStream.readAllBytes())
.build();
client.sendPhoto(true, List.of(myImage));
это не работает. Как мне указать несколько файлов (произвольное число)?
Изменить:
Я не контролирую серверную часть, но в соответствии с предоставленной открытой документацией API он принимает несколько файлов. Соответствующая часть спецификации открытого API:
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"dto"
],
"type": "object",
"properties": {
"dto": {
"$ref": "#/components/schemas/MyTypeDto"
},
"files": {
"type": "array",
"items": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
},
Итак, как вы можете видеть, он принимает несколько файлов, и когда я использую, например, библиотеку RestAssured, я могу загрузить несколько файлов, выполнив следующие действия:
RequestSpecBuilder requestSpecBuilder = new RequestSpecBuilder();
requestSpecBuilder.addMultiPart("files", (new File("path/to/an/image1.jpg")));
requestSpecBuilder.addMultiPart("files", (new File("path/to/an/image2.jpg")));
requestSpecBuilder.addMultiPart("files", (new File("path/to/an/image3.jpg")));
Подробнее здесь: https://stackoverflow.com/questions/790 ... out-spring
Как отправить несколько файлов с открытым притворным клиентом без пружины? ⇐ JAVA
Программисты JAVA общаются здесь
1728628884
Anonymous
Я хотел бы отправить произвольное количество изображений во время запроса multipart/form-data.
Я нашел этот пример в руководстве:
https://github. com/OpenFeign/feign-form?tab=readme-ov-file#multipartform-data
// FormData parameter
@RequestLine("POST /send_photo")
@Headers("Content-Type: multipart/form-data")
void sendPhoto (@Param("is_public") Boolean isPublic, @Param("photo") FormData photo);
Это работает нормально, но я не могу заставить его работать с несколькими файлами. Я попытался изменить приведенный выше пример, чтобы он принимал List вместо FormData, но у меня это не сработало — файлы не загружаются. Например:
// client method:
@RequestLine("POST /send_photo")
@Headers("Content-Type: multipart/form-data")
void sendPhoto (@Param("photo") FormData photo);
// using above method
var myImageStream = MyClass.class.getResourceAsStream("/test.jpg");
var myImage = FormData.builder()
.fileName("test.jpg")
.contentType("image/jpeg")
.data(myImageStream.readAllBytes())
.build();
client.sendPhoto(true, myImage);
работает нормально, но когда я меняю подпись, чтобы принять список:
// client method:
@RequestLine("POST /send_photo")
@Headers("Content-Type: multipart/form-data")
void sendPhoto (@Param("photo") List photo);
// using above method
var myImageStream = MyClass.class.getResourceAsStream("/test.jpg");
var myImage = FormData.builder()
.fileName("test.jpg")
.contentType("image/jpeg")
.data(myImageStream.readAllBytes())
.build();
client.sendPhoto(true, List.of(myImage));
это не работает. Как мне указать несколько файлов (произвольное число)?
[b]Изменить:[/b]
Я не контролирую серверную часть, но в соответствии с предоставленной открытой документацией API он принимает несколько файлов. Соответствующая часть спецификации открытого API:
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"dto"
],
"type": "object",
"properties": {
"dto": {
"$ref": "#/components/schemas/MyTypeDto"
},
"files": {
"type": "array",
"items": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
},
Итак, как вы можете видеть, он принимает несколько файлов, и когда я использую, например, библиотеку RestAssured, я могу загрузить несколько файлов, выполнив следующие действия:
RequestSpecBuilder requestSpecBuilder = new RequestSpecBuilder();
requestSpecBuilder.addMultiPart("files", (new File("path/to/an/image1.jpg")));
requestSpecBuilder.addMultiPart("files", (new File("path/to/an/image2.jpg")));
requestSpecBuilder.addMultiPart("files", (new File("path/to/an/image3.jpg")));
Подробнее здесь: [url]https://stackoverflow.com/questions/79076405/how-to-send-multiple-files-with-open-feign-client-without-spring[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия