Open
Description
Expected Behavior
Deserialize multipart list in POJO.
2022-03-01 18:17:05,847 > Got: Request[messages={0=Hello world, 1=Hola todos}]
2022-03-01 18:17:05,849 > Got: [{0=Hello world, 1=Hola todos}]
Actual Behaviour
Lists are not deserialized:
2022-03-01 18:17:05,847 > Got: Request[messages=null]
2022-03-01 18:17:05,849 > Got: null
Steps To Reproduce
- With HttpController:
@Controller("/messages")
public class MessageController {
static final Logger LOGGER = LoggerFactory.getLogger(MessageController.class);
@Post(produces = MediaType.APPLICATION_JSON, consumes = {MediaType.APPLICATION_FORM_URLENCODED, MediaType.MULTIPART_FORM_DATA})
public HttpResponse<Response> index(@Body Request request) {
LOGGER.info("Got: {}", request);
LOGGER.info("Got: {}", request.messages() != null ? List.of(request.messages()) : null);
return HttpResponse.ok(new Response(false));
}
private record Request(
Map<String, String> messages
) {}
private record Response(
Boolean success
) {}
}
- With Curl
curl --request POST \
--url http://localhost/messages \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'messages[0]=Hello world' \
--data 'messages[1]=Hola todos'
- The logs are:
2022-03-01 18:17:05,847 > Got: Request[messages=null]
2022-03-01 18:17:05,849 > Got: null
Environment Information
- openjdk-16.0.2
Example Application
No response
Version
3.3.3