尝试使用golang语言提取GRPC请求和响应标头。 有什么方法可以提取标题。
答案 0 :(得分:2)
您可以使用元数据
client-unary:
var header, trailer metadata.MD // variable to store header and trailer
r, err := client.SomeRPC(
ctx,
someRequest,
grpc.Header(&header), // will retrieve header
grpc.Trailer(&trailer), // will retrieve trailer
)
// do something with header and trailer
服务器: 可以使用FromIncomingContext从上下文中检索元数据:
func (s *server) SomeRPC(ctx context.Context, in *pb.SomeRequest) (*pb.SomeResponse, err) {
md, ok := metadata.FromIncomingContext(ctx)
// do something with metadata
}
client-stream:
stream, err := client.SomeStreamingRPC(ctx)
// retrieve header
header, err := stream.Header()
// retrieve trailer
trailer := stream.Trailer()
来源: https://github.com/grpc/grpc-go/blob/master/Documentation/grpc-metadata.md#unary-call