게시글 작성 기능을 구현하면서 게시글 관련 데이터가 담겨있는 DTO와 MultipartFile을 같이 보냈어야 했다.
Postman으로 테스트를 하고 있었는데 415 Unsupported Media Type 에러를 만나게 되면서 다음에 실수하지 않기 위해 글로 남겨두기로 했다.
Controller
@PostMapping("/post")
public ResponseEntity<Long> savePost(@RequestBody PostDTO.saveRequest dto,
@RequestPart(required = false) List<MultipartFile> images) {
return ResponseEntity.ok(postService.savePost(dto, images));
}
Content-Type이 각각 다른 것을 알 수 있다. dto는 application/json의 형식이고 MultipartFile 리스트 값을 받는 Images는 multipart/form-data형식으로 데이터를 받는다.
이때 Postman에서 데이터를 보내려면 [Body] 탭의 form-data 형식을 선택해서 두 번째 사진처럼 해당 값을 입력하면 된다.


그런데 이렇게만 설정하면 Content-Type이 multipart/form-data로만 지정해서 보내지기 때문에 415 에러를 만나게 된다.

이럴 때 제대로 된 요청을 보내기 위해서는 다음 화면에 보이는 것처럼 테이블에서 점 세 개 모양의 버튼을 눌러 Content Type 을 체크하고 아래 캡쳐 화면 처럼 application/json 으로 보내야 하는 데이터의 CONTENT TYPE 을 application/json으로 지정해 주면 된다.


'Spring' 카테고리의 다른 글
| @Valid exception handling (with BindException) (1) | 2022.11.29 |
|---|---|
| MultipartFile이 있는 DTO 요청하기 (404 Bad Request 해결) (0) | 2022.11.28 |
| [Spring] 빈 스코프 (0) | 2022.09.17 |
| [Spring] 빈 생명주기 콜백 (1) | 2022.09.17 |
| [Spring] @Autowired 필드명 매칭, @Qualifier, @Primary (2) | 2022.09.17 |