gpt4 book ai didi

java - 如何使用 io.grpc 包中的 grpc 状态详细信息

转载 作者:行者123 更新时间:2023-12-02 08:48:25 27 4
gpt4 key购买 nike

我正在编写一个 java 客户端,它使用 gRPC 与服务器进行通信。服务器(用 Rust 编写)在出现错误时返回结构化数据,使用 Status Details field .

我看到com.google.rpc.Status有一个用于访问“Any”类型的 getDetails 方法。但是,我生成的 java 代码以及我发现的所有 gRPC java 客户端示例都使用 io.grpc.* 和 io.grpc.Status 没有有任何方式访问详细信息

如何访问详细信息?使用 io.grpc.* 或以某种方式更改生成的 grpc 客户端以使用 com.google.rpc。

最佳答案

google.rpc.Status 通过 gRPC 元数据传播。 io.grpc.StatusProto类具有处理 google.rpc.Status 消息的实用程序。使用这些实用程序非常重要,因为它们会验证 google.rpc.Statusio.grpc.Status 匹配,以避免因混合两者而导致安全漏洞。

拦截器将使用 StatusProto.fromStatusAndTrailers(Status, Metadata),应用程序将使用 StatusProto.fromThrowable(Throwable)。 grpc-java中的StatusRuntimeException包含元数据,因此可以提取状态。

这与 rich error handling in gRPC answer 相关.

关于java - 如何使用 io.grpc 包中的 grpc 状态详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60936054/

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