Spring boot POST PDF Тип контента 'application / pdf не поддерживается - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь создать бэкэнд, куда я отправляю два PDF и работаю с ними. Для этого мне нужно внедрить службу REST, но я не могу их получить.

PostMapping

@PostMapping("/post")
    CompareJob compareJob(@RequestBody File file1) {
        System.out.print("Received File: " + file1);
        CompareJob compareJob = new CompareJob();
        return compareJob;
    }

Для выполнения запросов POST я использую Почтальон, где я установил следующие вещи:

Заголовки -> Тип контента: application / pdf

Body -> Binary: testPDF.pdf

Это ответ, который я получаю:

{
    "timestamp": "2019-03-12T13:55:12.898+0000",
    "status": 415,
    "error": "Unsupported Media Type",
    "message": "Content type 'application/pdf;charset=UTF-8' not supported",
    "path": "/post"
}

Я очень плохо знаком с сервисами REST и буду очень признателен за подсказки, что не так.

Спасибо за любую помощь!

Изменить после предложения amin10043:

@PostMapping("/post")
    CompareJob compareJob(@RequestParam("file1") MultipartFile file1) {
        System.out.print("Received File: " + file1);
        CompareJob compareJob = new CompareJob();
        return compareJob;
    }

После прочтения я не должен проверять Content-Type в Почтальоне, я получаю этот ответ:

{
    "timestamp": "2019-03-12T14:37:52.765+0000",
    "status": 500,
    "error": "Internal Server Error",
    "message": "Current request is not a multipart request",
    "path": "/post"
}

Моя ошибка была в том, что я загрузил pdf как двоичный файл, а не как данные формы в почтальоне. Должно быть установлено так: https://snag.gy/H4w5S8.jpg

1 Ответ

1 голос
/ 12 марта 2019

Если вы хотите загружать файлы, лучше использовать Multipartfile . Также, пожалуйста, измените ваш входной параметр с @RequesBody на @RequestParam("your parameter name"), чтобы почтальон добавил правильные заголовки в запрос, и он должен работать .

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