본문 바로가기
Back-End (web)

[Error][WebClient] UnsupportedMediaTypeException

by 햄과함께 2019. 2. 26.
320x100


return WebClient.create().get()
        .uri( ~~~ )
        .headers { ~~~ }
        .retrieve()
        .bodyToMono(Member::class.java)
cs

webClient를 이용해서 get한 결과를 Member 형태로 받아와서 Mono<Member>를 반환하는 코드를 짜고 돌려보았다.


There was an unexpected error (type=Internal Server Error, status=500).
Content type 'text/plain;charset=UTF-8' not supported for bodyType=Member
org.springframework.web.reactive.function.UnsupportedMediaTypeException: Content type 'text/plain;charset=UTF-8' not supported for bodyType=Member
    at org.springframework.web.reactive.function.BodyExtractors.lambda$readWithMessageReaders$12(BodyExtractors.java:201)
cs

위와 같이 UnsupportedMediaTypeException 에러를 뱉는다.

읽어보면 Content type 'text/plain;charset=UTF-8'이 내가 만든 Member type을 지원하지 않는다고 한다.


return WebClient.create().get()
        .uri( ~~~ )
        .headers { ~~~ }
        .accept(MediaType.APPLICATION_JSON) // add
        .retrieve()
        .bodyToMono(Member::class.java)
cs

해결방법은 MediaType.APPLICATION_JSON을 허용 가능한 미디어 타입으로 추가한다.

헤더에 ("Content-Type", "application/json") 것과 같은 기능을 하는 듯 하다.


참고 : https://www.baeldung.com/spring-5-webclient

320x100

댓글