WebClient3 [kotlin][coroutine] awaitRetrieve 응답이 200이고 응답 body에 대한 처리만 하고 싶은 경우 retrieve. 이 외에 응답 코드가 4xx, 5xx 등 특정 코드에 따라 다른 결과를 주고 싶거나 응답 헤더를 사용하고 싶은 경우는 exchange를 사용하자. (참고 : [spring] webClient error 처리) 평소에 4xx, 5xx 일 때 에러는 신경안쓰고 body에 대해서만 고려해서 retrieve를 많이 사용했었다. coroutine으로 전환하면서 awaitRetrieve 를 쓰려고 했는데 없었다. 그러나 package org.springframework.web.reactive.function.client.WebClientExtension 에 awaitExchange 함수는 있다. (참고) suspend fun Reque.. 2020. 4. 5. [spring] webClient error 처리 기존코드 WebClient.create().get() .uri("http://~~~") .retrieve() .bodyToMono(CustomResponse::class.java) .onErrorMap { e -> log.error(e.message) e // return e } .map { // return } CustomResponse 타입의 body를 가져와서 처리한다. 에러가 발생하는 경우(4xx, 5xx) onErrorMap이 에러를 캐치해서 log.error로 해당에러를 찍는다. WebClient.create().get() .uri("http://~~~~") .exchange() .flatMap { response -> // get header val header = response.heade.. 2019. 5. 8. [Error][WebClient] UnsupportedMediaTypeException return WebClient.create().get() .uri( ~~~ ) .headers { ~~~ } .retrieve() .bodyToMono(Member::class.java)Colored by Color ScriptercswebClient를 이용해서 get한 결과를 Member 형태로 받아와서 Mono를 반환하는 코드를 짜고 돌려보았다. There was an unexpected error (type=Internal Server Error, status=500).Content type 'text/plain;charset=UTF-8' not supported for bodyType=Memberorg.springframework.web.reactive.function.UnsupportedMedi.. 2019. 2. 26. 이전 1 다음