如何从客户端发送 grpc 元数据

bha*_* nc 1 go grpc

grpc.Dial(server)在 golang 中使用来设置到我的服务器的 grpc 连接。

如何通过此拨号连接(从客户端)发送元数据或自定义标头?

Swi*_*ftD 5

我认为 grpc 是您的客户端连接对象。

您使用 map[string]string 中的 metadata 子包创建元数据(提供了一些其他方法),然后通过上下文传递它,例如

md := metadata.New(map[string]string{"key1": "val1", "key2": "val2"})
ctx := metadata.NewOutgoingContext(context.Background(), md)
Run Code Online (Sandbox Code Playgroud)

因为您通过上下文传递元数据,所以您需要使用 client.DialContext() 而不是 Dial 我认为https://godoc.org/google.golang.org/grpc#DialContext

有关示例,请参见此处 - https://github.com/grpc/grpc-go/blob/master/Documentation/grpc-metadata.md