【发布时间】:2019-07-22 22:22:29
【问题描述】:
我需要在 Java 中发出以下问题:
// 我想将以下内容存储在一个字符串中:
'\x00\x00\x00\x00\x15{“message”:”Hello”}’
我将执行的整个操作如下,但我首先需要将上面的字符串存储到 StringArray 或其他任何有效的方法中。这是 grpc 编码我需要使用 Envoy 代理 http-grpc 桥接器。
curl -i -X POST -H "Content-Type:application/grpc+json” http://10.20.1.10:31234/com.test.echo.EchoService/echo -d '\x00\x00\x00\x00\x15{“message”:”Hello”}’
我特别关心如何在字符串中强表示 -d 之后的最后一部分,以便我可以将其发送出去。如何将其存储在 Java 中?
更新;我试过了:
String content = "x00x00x00x00x15{“message”:”Hello”}";
和
String content = "//x00//x00//x00//x00//x15{“message”:”Hello”}";
但两者都返回 grpc 13 代码和
Jul 23, 2019 6:41:36 AM io.grpc.netty.shaded.io.grpc.netty.NettyServerStream$TransportState deframeFailed
WARNING: Exception processing message
io.grpc.StatusRuntimeException: INTERNAL: gRPC frame header malformed: reserved bits not zero
at io.grpc.Status.asRuntimeException(Status.java:524)
at io.grpc.internal.MessageDeframer.processHeader(MessageDeframer.java:377)
【问题讨论】:
-
你的意思是
\\x00\\x00\\x00\\x00\\x15{“message”:”Hello”}? -
我试过了,但在服务器端出现错误;
-
警告:异常处理消息 io.grpc.StatusRuntimeException:内部:gRPC 帧头格式错误:io.grpc.Status.asRuntimeException(Status.java:524) 处的保留位不为零。 internal.MessageDeframer.processHeader(MessageDeframer.java:377) at io.grpc.internal.MessageDeframer.deliver(MessageDeframer.java:267) at io.grpc.internal.MessageDeframer.request(MessageDeframer.java:
-
你试过github.com/fullstorydev/grpcurl 吗?这使得发送 grpc 请求变得更加容易!
grpcurl --plaintext -d '{...}' 10.20.1.10:31234 com.test.echo.EchoService/echo
标签: java grpc grpc-java envoyproxy