Spring WebFlux - 如何使用 WebClient 将响应打印为字符串而不是对象

Spring WebFlux - How to print response as String instead of object using WebClient

我有一个像下面这样的单声道:

    private void getNodeDetail() {
        Mono<String> mono = webClient.get()
                .uri("/alfresco/api/-default-/public/alfresco/versions/1/nodes/f37b52a8-de40-414b-b64d-a958137e89e2")
                .retrieve().bodyToMono(String.class);

        System.out.println(mono.subscribe());
        System.out.println(mono.block());
    }

问题:第一个系统输出显示 reactor.core.publisher.LambdaSubscriber@77114efe 在使用 block() 时它显示了我需要的东西(json 字符串)。但我想使用 Aysnc 方法。那么,上面给出的是否意味着我的目标系统(在本例中为 Alfresco)不支持异步调用?如果不是这种情况,我如何使用 subscribe() 在控制台上以字符串格式打印响应,就像 block() 一样?

subscribe()方法returns一个Disposable对象:

 public final Disposable subscribe()

在控制台上打印响应的预期方式是实际使用 doOnNext 运算符,如下所示:

private void getNodeDetail() {
    webClient.get()
            .uri("/alfresco/api/-default-/public/alfresco/versions/1/nodes/f37b52a8-de40-414b-b64d-a958137e89e2")
            .retrieve()
            .bodyToMono(String.class)
            .doOnNext(response -> System.out.println(response))
            .subscribe();
}