【发布时间】:2019-04-10 23:59:14
【问题描述】:
我正在尝试使用 Postman 调用我的 web api,并在 Postman 中传递一些标头值。然后在 C# web api 中,我试图获取标头值。可能是由于缺乏知识/理解,我很难从 HttpResponseMessage 获取标头值。
我有一个代表试图获取信息
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
IEnumerable<string> keys = null;
if (!request.Headers.TryGetValues("AppData", out keys))
return null;
var item = keys.First();
.....
}
当我调试并在 IEnumerable 处中断时,请求没有我在标头中设置的值。我可能缺少什么?
我的解决方法。
我能够得到这个工作。这是我发现和做的。 HttpRequestMessage 请求实际上包含我通过 Postman 传递的标头信息。似乎这取决于捕获它的过程中的哪个位置。就我而言,这是在 global.asax 中完成的。看来我正试图尽快捕获请求,因此不包含标头信息。因此,我将请求捕获移到了委托之外并移到了控制器中,在那里我有了传递的标头信息。
【问题讨论】:
-
邮递员正在发出请求 - 您是通过
HttpClient代理它吗? -
@DanielA.White 不,它没有使用代理
-
你到底想达到什么目的?您想在服务器端代码上检索请求标头吗?或者您想知道如何在邮递员中查看响应标头?或者您想知道如何在 C# 中编写代码来发送请求标头和读取响应标头?
标签: c#