Конечная точка Spring Boot Multipart REST выдает «Текущий запрос не является составным запросом» при вызове из Postman - PullRequest
0 голосов
/ 14 июля 2020

Версия Spring Boot: 2.1.5.RELEASE. Версия Spring Cloud: Greenwich.RELEASE

У меня есть следующая конечная точка, определенная в аннотированном классе @Controller

@PostMapping("/")
@ResponseBody
public OcrResponse submitFile(@RequestParam("file") MultipartFile multipartFile) {
    logger.info("Entering submitFile method");
    //do more stuff......
}

Я тестирую ее с помощью Postman, и она работает нормально. Вчера я решил обновить Postman до последней версии (с тех пор, как я обновил ее, наверное, прошел как минимум год). Теперь, когда я тестирую его, я получаю следующую ошибку: -

org.springframework.web.multipart.MultipartException: Current request is not a multipart request
    at org.springframework.web.method.annotation.RequestParamMethodArgumentResolver.handleMissingValue(RequestParamMethodArgumentResolver.java:194)
    at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:113)

Вот как выглядит мой запрос Postman: -

  1. Заголовки. Они автоматически включаются самим Почтальоном, я не добавил ни одного своего: -

Postman Headers

  1. Body (также отображается ошибка): -

Тело почтальона и ошибка

Я видел другие сообщения с похожей ошибкой, но в основном они были решены путем удаления заголовка Content-type из запроса, но в данном случае это не сработало.

Я пытался удалить, переименовать и переупорядочить заголовки Postman, но ничего из этого не помогло. Я также попытался изменить сигнатуру метода конечной точки REST, например переименовать переменную и параметр MultipartFile и использовать RequestPart вместо RequestParam, но пока ничего не помогло. Кажется странным, что точно такой же запрос работал и в более старой версии Postman. Буду крайне признателен за любые советы / предложения.

1 Ответ

0 голосов
/ 14 июля 2020

На всякий случай, если это поможет кому-то еще, я расскажу, как я решил эту проблему ....

Вышеупомянутая проблема возникла, когда у меня была установлена ​​более старая версия Postman, и я обновил эту установленную версию до последний через меню «Настройки» -> «Обновить».

С тех пор я полностью удалил Postman и установил последнюю версию с нуля. Теперь проблема исчезла, и я могу успешно протестировать свою конечную точку. Немного странно, но, по крайней мере, он меня разблокировал.

Итак, мой совет всем, кто обновляет свою установку Postman, - избегать попыток обновить существующую установку. Вместо этого экспортируйте все свои коллекции, полностью удалите старую версию, установите новую версию с нуля и повторно импортируйте все свои коллекции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...