0

我想从 sendRequest() 方法返回状态代码,而不仅仅是能够打印该值。谁能指出如何将下面的代码修改为"wait for the Mono to complete"

我知道我可以使用Thread.sleep(1000);,但这似乎不是一个好方法!

private fun sendRequest(url:String): Disposable {
    val webClient= WebClient.builder().baseUrl(url.trim())
            .defaultHeaders { header: HttpHeaders ->
                header.setBasicAuth("username", "password") }
            .build();

    return webClient.get()
            .uri(url)
            .exchange()
            .map { response: ClientResponse -> response.statusCode() }
            .subscribe { v -> printStatus(v)}
}

fun printStatus(statusMono: HttpStatus) {
    println(statusMono)
}

我知道,由于我在 Webflux 应用程序中使用 WebClient,我必须将 Mono 或 Flux 一直返回给调用客户端,因为调用客户端是订阅者。但我不知道如何。

4

1 回答 1

0

@JEY贴出上面的答案。这对我有用:

webClient.get().uri(url).exchange().map { it.statusCode() }
于 2020-07-19T19:20:54.843 回答