Blog

Spring framework 5.2 以後=Spring Boot 2.2 以後では WebClient のレスポンスの取り扱いが便利になっている件

https://twitter.com/making/status/1192216994147270656?s=20

WebClient からの response status などを取得しやすくなっている。 便利。

    val logger = LoggerFactory.getLogger(WebfluxSampleApplication::class.java)

    val url = "http://example.com/"

    val webClient = WebClient.builder()
            .build()
    val entityMono = webClient.get().uri("http://example.com/")
            .retrieve()
            .toEntity(String::class.java)

    logger.info("Sent http request. url=$url")

    val entity = entityMono.block()!!

    if (entity.statusCode.is2xxSuccessful) {
        val body = entity.body
        logger.info("HTTP request succeeded. url=$url status=${entity.statusCodeValue} length=${body?.length}")

        // process response data...
        println(body)
    } else {
        logger.info("HTTP request failed. url=$url status=${entity.statusCodeValue} body=${entity.body}")
    }