如何将客户端响应的主体转换为特定类型的 Mono



因此,我使用WebClient发送请求,并且在使用exchange((检索响应后,我需要将正文提取为Object_1的Mono。该函数需要返回 Mono>。通常你会使用bodyToMono(SomeObject.class(,但这在这种情况下不起作用。

public Mono<Object1<Object2>> getAll(String someParam) {
       return WebClient.create(this.baseUrl)
                .get()
                .uri(uriBuilder -> uriBuilder.path("/some_path")
                        .queryParam("someParam", someParam)
                        .build())
                .exchange()
                .flatMap(clientResponse -> clientResponse.bodyToMono(????));
    }

我正在试图弄清楚在身体里放什么ToMono((

我相信

你可以通过bodyToMono的过载来做到这一点,这需要ParameterizedTypeReference.

ParameterizedTypeReference<Object1<Object2>> typeRef =
    new ParameterizedTypeReference<Object1<Object2>>() {};
// . . .
.flatMap(clientResponse -> clientResponse.bodyToMono(typeRef));

如果你愿意,你可以用内联方式编写它,并且不觉得它太难阅读:

.flatMap(clientResponse -> clientResponse.bodyToMono(
    new ParameterizedTypeReference<Object1<Object2>>() {}));

相关内容

最新更新