问题描述
如何使用 grpcurl 发送类型为“Any”的消息?
我有这个原型:
message MyRequest {
string request_id = 1;
repeated google.protobuf.Any payload = 2;
}
我正在发送此请求:
{
"request_id":"1","payload":[
{
"@type":"type.googleapis.com/com.my.type.Payload","id":"12345","message": "Hello",}
]
}
grpcurl -plaintext -d '{"request_id": "1","payload": [{"@type": "type.googleapis.com/com.my.type.Payload","id": " 12345","message": "Hello"}]}' localhost:1000 com.my.service.ServiceName/Method
但出现错误:Error invoking method "com.my.service.ServiceName/Method": error getting request data: unkNown message type "com.my.type.Payload"
服务端是 Kotlin 中的 Spring Boot 项目,所以我加了一个 bean
@Bean
fun protobufJsonFormatHttpMessageConverter(): ProtobufHttpMessageConverter? {
val typeRegistry: JsonFormat.TypeRegistry = JsonFormat.TypeRegistry.newBuilder()
.add(com.my.type.Payload.getDescriptor())
.build()
val printer = JsonFormat.printer().usingTypeRegistry(typeRegistry)
return ProtobufJsonFormatHttpMessageConverter(JsonFormat.parser(),printer)
}
但这没有帮助。如何解决?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)