java - 如何在 Java 字符串中存储 grpc 编码数据?

标签 java grpc grpc-java envoyproxy

我需要在 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)

最佳答案

看来您根据 the other question 解决了此步骤.

顺便说一句,你可以使用ByteBuffer

byte[] payload = ???;
int payloadSize = payload.length;
ByteBuffer buf = ByteBuffer.allocate(payloadSize + 5);
buf.put((byte) 0);
buf.putInt(payloadSize);
buf.but(payload);

关于java - 如何在 Java 字符串中存储 grpc 编码数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57154467/

相关文章:

java - 如何使用 iText PDF Java 库打开远程目录?

protocol-buffers - grpc 和 protobuf - 当另一方未同步发布时如何处理新字段

grpc - 处理 grpc java/node 上的客户端和服务器错误

java - 如何处理 protobuf3 消息中的可空枚举类型字段?

java - 如何使用 java jnr 推断 clib 结构

java - 使用jmock如何重用参数

node.js - Tensorflow 服务 grpc 客户端错误 12

java - GRPC Java 登录测试

java - 为 JVM 编译 C 代码或在 JVM 中嵌入 C 运行时

python - 将 Python Thrift 客户端与 Go gRPC 服务器接口(interface)