我有grpc服务器。它会像推荐的there一样,在Status.details中发送丰富的错误
proto文件中描述的Ruch错误
message Error {
Code code = 1;
// user friendly text
string message = 2;
}grpcurl响应:
ERROR:
Code: FailedPrecondition
Message: device blocked
Details:
1) {
"@type": "type.googleapis.com/myapp.overall.v1.Error",
"code": "CODE_DEVICE_BLOCKED",
"message": "Выполнение операции невозможно тк вашего устройства отправляется слишком много запросов. Пожалуйста попробуйте еще раз чере 3 минуты"
}如何使用Kotlin / Java (Android)访问Status.details?
发布于 2020-08-26 04:21:21
您可以使用StatusProto.fromThrowable(Throwable)将其转换为google.rpc.Status原型:
import io.grpc.protobuf.StatusProto;
com.google.rpc.Status status = StatusProto.fromThrowable(statusException);
for (Any any : status.getDetailsList()) {
if (!any.is(Error.class)) {
continue;
}
Error error = any.unpack(Error.class);
// error is now available
}您可以创建一个实用程序来减少该操作的冗长。
https://stackoverflow.com/questions/63585587
复制相似问题