Что заставляет WebClient возвращать значение null из вызова rest?

#spring-boot #kotlin #spring-webflux #spring-webclient

#весенняя загрузка #kotlin #spring-webflux #spring-webclient

Вопрос:

У меня есть базовое приложение Kotlin Spring, и я хочу выполнить вызов rest для возврата и печати json. У меня есть приведенный ниже код, но каждый раз, когда я выполняю вызов, он возвращает значение null. Это происходит и с другими вызовами rest. Нужно ли мне выполнять вызов другим способом?

 fun main(args: Array<String>) {
    val app = runApplication<NestpublisherApplication>(*args)

    val client = WebClient.create("https://api.kanye.rest")
    val type = object : ParameterizedTypeReference<String>() {}

    val result : Flux<String> = client.get()
            .retrieve()
            .bodyToFlux(type)
            .doOnNext{println("Iterating through")}
            .doOnError { println("ERROR: ${it.message}") }
}
  

Комментарии:

1. Где вы видите, что он возвращает null?

2. result является Flux<String> . Поток будет иметь результат. Вы можете увидеть это, напечатав result.blockLast()

3. Это сработало! Если вы опубликуете ответ, я приму его. Спасибо!!

4. блокировка — это плохо, и это плохой ответ.

5. Поскольку вы используете Kotlin, вы также можете использовать сопрограммы. Завершите свой код runBlocking и вызовите один из await... методов.