Как разместить список объектов весной? - PullRequest
0 голосов

У меня есть метод в контроллере

    @PostMapping("/process")
    suspend fun process(
        @RequestParam("id") id: String,
        @RequestParam("names") names: List<String>,
        @RequestParam("repositoryUri") repositoryUri: String
    ) = coroutineScope {
    ...
    }

Я хочу отправить почтовый запрос из внешнего настольного приложения, и я пытаюсь

        val post = HttpPost(uri)
        val builder: MultipartEntityBuilder = MultipartEntityBuilder.create()

        builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE)
        builder.addTextBody("id", id, ContentType.DEFAULT_BINARY) // id is String, that is Ok
        builder.addTextBody("names", names, ContentType.DEFAULT_BINARY) // names is List<String>, error
        builder.addTextBody("repositoryUri", repositoryUri, ContentType.DEFAULT_BINARY) // Ok

        val entity: HttpEntity = builder.build()
        post.entity = entity
        httpclient.execute(post)

Но второй параметр в контроллере метод (names) не является строкой. В конструкторе есть только методы addTextBody и addBinaryBody (но вроде не подходят)

Как мне это сделать?

PS Я использую apache

1 Ответ

0 голосов
/ 09 мая 2020

Вам понадобится настраиваемый формат для отправки списка строк в качестве параметра формы http.

Преобразуйте список, например, в строку, разделенную запятыми, вам придется повторно преобразовать строку в список на сервере сторона.

Или us json:

ObjectMapper mapper = new ObjectMapper();
TextBody("names", mapper.writeValueAsString(names), ... )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...