Как получить данные тела запроса вместе с файлом изображения из нескольких частей? - PullRequest
1 голос
/ 20 сентября 2019

Я хочу получить файл изображения, состоящий из нескольких частей, с данными тела запроса, но не смог понять, почему он выбрасывает org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/octet-stream' не поддерживается исключение

Ниже приведена моя реализация

public ResponseEntity<GlobalResponse> createUser(@Valid @RequestPart("json") UserDTO userDTO ,@RequestPart(value ="file", required=false)MultipartFile file) throws IOException {

      //Calling some service

      return new ResponseEntity<>( HttpStatus.OK);
}

РЕДАКТИРОВАТЬ: Это моя конфигурация почтальона

enter image description here

Ответы [ 2 ]

2 голосов
/ 20 сентября 2019

Поскольку вы отправляете данные в форма-данные , которые могут отправлять данные в парах ключ-значение.Не в RequestBody, поэтому вам нужно изменить конечную точку следующим образом:

@PostMapping(value = "/createUser")
public ResponseEntity createUser(@RequestParam("json") String json, @RequestParam("file") MultipartFile file) throws IOException {
    ObjectMapper objectMapper = new ObjectMapper();
    UserDTO userDTO = objectMapper.readValue(json, UserDTO.class);
    // Do something
    return new ResponseEntity<>(HttpStatus.OK);
}

Вам необходимо получить объект UserDTO в представлении String, а затем сопоставить его с UserDTO, используя ObjectMapper,Это позволит вам получать MultipartFile и UserDTO с использованием данных формы.

0 голосов
/ 20 сентября 2019

Согласно вашему исключению: org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/octet-stream' метод не ожидает составных данных, поэтому,

Укажите запрос для использования MultiPart данных в @RequestMapping конфигурации:

@Postmapping("/api/v1/user", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) 
public ResponseEntity<GlobalResponse> createUser(@Valid @RequestPart("json") UserDTO userDTO ,@RequestPart(value ="file", required=false)MultipartFile file) throws IOException {

      //Calling some service

      return new ResponseEntity<>( HttpStatus.OK);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...