gpt4 book ai didi

java - 带有 ParameterizedTypeReference 的 Spring WebClient 不起作用

转载 作者:行者123 更新时间:2023-12-02 16:17:52 26 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序,我正在使用 WebClient 向返回以下格式的 API 发出请求 {"results": {...}} 其中 results 字段可以有多种不同的格式。我创建了以下类来存储 API 响应。

@Data
@Jacksonized
@Builder
public class ApiResponse<T> {
private T results;
}

当我调用以下方法时:

public MyResClass makeApiCall(String URI) {
ApiResponse<MyResClass> response = webClient.get()
.uri(URI)
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(new ParameterizedTypeReference<ApiResponse<MyResClass>>() {})
.block();

return response.getResults();
}

java.lang.ClassCastException 抛出消息:“class java.util.LinkedHashMap cannot be cast to class MyResClass”

最佳答案

删除 @Builder@Jacksonized 注释并重复测试,没有它们似乎工作正常。

附言请注意 block() 调用,如果此代码恰好在非阻塞线程上执行,则可能会抛出各种错误!

关于java - 带有 ParameterizedTypeReference 的 Spring WebClient 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66188069/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com