我正在通过GRPC将数据发送到IntegrationApi
,并调用方法Foo
。我需要从响应中读取标头值(我正在与之通信的API发送限速标头)。
我正在使用https://www.nuget.org/packages/Grpc.Core/
var metaData = new Metadata();
metadata.Add(new Metadata.Entry("Authorization", $"Bearer {apiKey}"));
var channel = new Channel("url to endpoint", new SslCredentials());
var client = new IntegrationApi(channel);
var callOptions = new CallOptions()
.WithHeaders(metadata)
.WithDeadline(DateTime.UtcNow.AddSeconds(15))
.WithWaitForReady(false);
var response = client.Foo(req, options);
但是response
仅给我基于Foo.proto
文件的属性。
我该怎么做?
答案 0 :(得分:1)
您正在使用“ Foo”方法的同步版本,并且使用的是API的简化版本(=仅允许访问响应,并在出现错误时抛出RpcExceptions)。
如果您调用同一方法的异步版本(“ FooAsync”),您将获得一个可以访问所有调用详细信息(例如响应头)的调用对象。