본문 바로가기
spring

[스프링부트 form 전송] - 415 Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

by skyepodium 2022. 5. 30.

 

웹에서 보낸 form을 스프링부트 컨트롤러에서 받을 때 다음 에러가 발생할 수 있습니다.

Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

 

1. 해결법

아마도 컨트롤러에서 form 데이터를 @RequestBody 로 받으려고 했을 것이고, @RequestBody를 제거하면 에러 없이 받을 수 있습니다.

@RequestMapping("/api/v1/hello")
@RestController
public class RestContoller {

    @PostMapping("/form")
    public String hello(@RequestBody HelloForm helloForm) {
        return "hello";
    }
}

 

2. 이유

1) 415 에러

Unsupported Media Type 에러는 클라이언트가 지원되지 않는 형식으로 요청하여 서버가 거절한 경우를 의미합니다.

 

2) jackson

@RequestBody는 body로 받은 JSON을 jackson을 통해 Object로 변경하는데 form은 Content-Type: application/x-www-form-urlencoded 으로 전송하기 때문에 타입이 맞이 않아 에러가 발생합니다.

 

'spring' 카테고리의 다른 글

[spring] Cannot find method 'value'  (0) 2022.06.01
[스프링부트] ERR_UNSAFE_PORT 에러  (0) 2022.05.30
springboot - CORS  (0) 2022.05.29