У меня есть простой класс контроллера extends AbstractController
, который я подключаю к механизму отображения обработчика Spring, создавая новый компонент SimpleUrlHandlerMapping
.
В моем классе мне нужно читать необработанные данные POST, даже когда Content-Type равен application/x-www-form-urlencoded
. Это несколько сложно в спецификации Servlet, потому что для этого вам нужно вызвать request.getInputStream()
или request.getReader()
до того, как вы получите доступ к любому из request.getParameter*()
методов. В противном случае последний будет использовать входной поток, и он больше не будет доступен.
В моем классе я не вызываю ни один из getParameter*()
методов, но я все еще вижу пустое тело запроса, когда Content-Type равен application/x-www-form-urlencoded
. Это означает, что Spring вызывает один из getParameter*()
методов, прежде чем он передает управление моему классу.
Какой класс это делает и как я могу предотвратить это?
(Примечание для чрезмерно усердных редакторов: этот вопрос относится только к Spring Boot. Он не является дубликатом других вопросов «необработанных данных POST».)