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();
}
我有一个像下面这样的单声道:
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();
}