c# - 在服务器端c#读取grpc中的元数据

标签 c# .net-core metadata grpc proto

我正在从客户端发送元数据中的 token

      Channel channel = new Channel("127.0.0.1:50051", ChannelCredentials.Insecure);
  ItemQuery item = new ItemQuery() { Id = "abc" };
  var client = new MyService.MyServiceClient(channel);
  Metadata data = new Metadata
  {
    { "token", "Bearer xhrttt" }
  };
  var reply = client.GetItem(item, data);

但无法找到在服务器端获取它的方法,感谢任何帮助

下面是我的服务器端代码的示例(我也尝试了某些其他方法)

public override Task<ItemResponse> GetItem(ItemQuery request , ServerCallContext context)
    {
        try
        {
            var a = context.RequestHeaders["token"]; // not working 
            ItemResponse itmRes = new ItemResponse();
            if (request.Id == "foo")
            {
                itmRes.Items.Add(new Item() { Id = "foo", Name = "foobar" });
            }
            return Task.FromResult(itmRes);
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }
        return null;
    }

最佳答案

下面是在c#中获取元数据的代码

                Metadata.Entry metadataEntry = context.RequestHeaders.FirstOrDefault(m =>
            String.Equals(m.Key, "token", StringComparison.Ordinal));

            if (metadataEntry.Equals(default(Metadata.Entry)) || metadataEntry.Value == null)
            {
                return null;
            }
            Console.WriteLine("Token value is {0}", metadataEntry.Value);

有关更多详细信息,请参阅 https://csharp.hotexamples.com/examples/Grpc.Core/ServerCallContext/-/php-servercallcontext-class-examples.html

关于c# - 在服务器端c#读取grpc中的元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54713676/

相关文章:

c# - 为什么 CancellationTokenSource.Token.register 回调被所有请求共享?

c# - 在 .NET 中提取有关 PNG 的图像信息

java - JPEGMetadata 无法解析为类型

c# - 在 Razor View 中的 ASP.NET WEB API 中获取路由前缀的 URL

c# - 如何使用 Entity Framework 获取表中的最新行(考虑性能)?

c# - ZKTeco 合并 3 指纹 C# 与 ZKFingerSDK

c# - 如何使用 C# .net 核心访问 cloudwatch 日志事件

console-application - 您如何在 .net 核心控制台应用程序中存储用户应用程序数据

mongodb - 如何将Bson ObjectId添加到JObject

facebook-graph-api - 是否可以从获取的 url 而不是规范的 url 中提取元数据?