Spring) kakao oAuth2.0 login API 요청할 때 주의점(content-type)

오성민·2023년 1월 13일
0

spring

목록 보기
13/17
post-thumbnail

kakao developer 공식 문서를 확인해보고 다른 oauth2.0 login api를 사용해보면 알 수 있듯이access token과 refresh token을 발급받기 위해서 api를 요청할 때 content-type을 application/x-www-form-urlencoded;charset=utf-8 으로 요청을 해야한다.

문제점

그리고 여러 값을 request body에 담아서 보내야하는데, form 형식은 모든 값을 uri에 붙여서 요청을 날리는 방식이다.
하지만 절대로 uri에 string을 이어붙여서 하는 것은 아니라고 생각을 해서 Map type을 사용해서 요청을 보냈다.

하지만 요청을 보내자마자

너가 요청한 content-type인 x-www-form-urlencoded는 map을 지원하지 않아~

라는 예외가 발생을 하였다.

해결방법

구글링을 해보니 다행하게도 해당 실수를 하는 사람들이 많았다.

해결방법으로는
Map<Object, Object> = new HashMap<>();이 아닌
MultiValueMap<Object, Object> = LinkedMultiValueMap<>();
을 사용해서 body 값을 담고 요청을 보내면 된다.

위에 작성한 것에서는 key type class와 value type class를 모두 예시를 들기위해서 object를 사용한 것이고, 적절한 class를 사용해서 body를 구성해주면 된다.

profile
풀스택을 지향하는 개발자

0개의 댓글