提问人:abhishek narayan 提问时间:8/30/2023 最后编辑:Federico klez Cullocaabhishek narayan 更新时间:8/30/2023 访问量:105
如何将 Uni<Response> 对象转换为 String?
How to convert a Uni<Response> object into a String?
问:
我正在使用一个Quarkus应用程序,该应用程序具有一个依赖的客户端服务,该服务将响应作为Uni对象类型传递给我
Uni<Response> response = clinetService.someMethod(id);
现在,我需要将此响应作为字符串传递给另一个客户端缓存服务:
cacheService(id, mapObj, responseObjectAsAString);
所以我需要将这个转换后的 String 值传递给上面的方法。
我尝试了多种方法使用方法或 Gson 类将其序列化/转换为字符串,但没有任何效果。ObjectMapper writeValueAsString(obj)
.toJson(obj)
任何建议都会很有帮助。
答:
0赞
Rob Spoor
8/30/2023
#1
您实际上必须解决两个任务:
- 将 转换为
Uni<Response>
Uni<String>
- 将 转换为
Uni<String>
String
第一个可能很简单:
Uni<String> body = response.map(r -> r.readEntity(String.class));
第二个可以使用 .一个完整的例子:UniAwait
String body = response.map(r -> r.readEntity(String.class))
.await()
.indefinitely();
您也可以使用 代替 ,也可以将 放在 和 之间,以返回 代替。atMost
indefinitely
asOptional()
await()
indefinitely()
Optional<String>
评论
Response
clinetService