如何提取自定义 header 值?

How to extract custom header value?

我从我的项目中接受的答案中获得了这个确切的代码,我需要将其迁移到 ASP.NET 核心 MVP。

How to extract custom header value in Web API message handler?

var env = Request.Headers.GetValues("environment").First();

如何在 .NET Core 中实现它?

我希望这不会被认为是一个重复的问题,因为我正试图用新系统而不是旧系统来做这个。如果有人在 link 中添加关于当前版本的答案,我也很好。

编辑: 我试过了 link 但 API 可能已经改变了。我也不认为这与该问题重复。

Request.Headers returns Microsoft.AspNetCore.Http.IHeaderDictionary 定义下一个接口 属性:

StringValues this[string key] { get; set; }

IHeaderDictionary has a different indexer contract than IDictionary, where it will return StringValues.Empty for missing entries.

Return type: Microsoft.Extensions.Primitives.StringValues

Returns: The stored value, or StringValues.Empty if the key is not present.

因此,您可以简单地使用 Request.Headers["environment"] 来获取 "environment" header

的值

由于这个回答的浏览量比较大,您也可以通过参数中的属性来访问这个字段。这是一个例子:

在请求中,您可以访问 body、queryString 或 header 中的任何字段。这是关于授权 header:

的 Postman 示例