微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

grpcurl 发送“任何”类型的消息

如何解决grpcurl 发送“任何”类型的消息

如何使用 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 举报,一经查实,本站将立刻删除。