07 May 2018

(spring) spring-rest api 중 HTTP Status 415 – Unsupported Media Type 에러

@RequestMapping(value = "/hi", method = RequestMethod.POST, headers = {"Content-type=application/json"})
@ResponseBody
public String testMessage(@RequestBody JSONObject resObj){
    return "hi";
}

spring으로 restful을 공부하는데 위의 코드처럼 POST로 받을 때 @RequestBody를 JSONObject로 받으면

밑의 사진과 같은 HTTP Status 415 – Unsupported Media Type 에러가 났다.

Alt text

이상하게 String으로하면 값을 받을 수 있는데 그 이외의 JSONObject나 Map과 같은 다른 type을 사용하면 저 애러가 난다.

인터넷 보면 의존설정을 잘못했다던가 데이터를 잘못줬다던가 여러가지 이유가 있었는데

이것저것해봐도 오류가 해결되지 않아, 임의로 String으로 받아 JSONParser을 통해 JSONObject로 변환하여 사용하였다.

	@RequestMapping(value = "/hi", method = RequestMethod.POST, headers = {"Content-type=application/json"})
    @ResponseBody
    public String testMessage(@RequestBody String resObj) throws ParseException {
        System.out.println("값들어간다." + resObj);

		/*String으로 받은 resObj를 JSONObject type으로 변환*/
        JSONParser parser = new JSONParser();
        Object obj = parser.parse(resObj);
        JSONObject jsonObj = (JSONObject) obj;

        String code = (String) jsonObj.get("content");

        System.out.println(code);

        return "HI";
    }
Thank You For Reading
Yerin

공부하는 블로그입니다!
궁금한 점은 댓글을 달아주세요!

comments powered by Disqus