如何提取自定义标头值?
Posted
技术标签:
【中文标题】如何提取自定义标头值?【英文标题】:How to extract custom header value? 【发布时间】:2016-12-12 04:40:28 【问题描述】:我的项目中接受的答案中有这个确切的代码,我需要迁移到 ASP.NET Core MVP。
How to extract custom header value in Web API message handler?
var env = Request.Headers.GetValues("environment").First();
如何在 .NET Core 中实现这一点?
我希望这不是一个重复的问题,因为我正在尝试使用新系统而不是旧系统来执行此操作。如果有人在有关当前版本的链接中添加答案,我也会很好。
编辑:Where all types for http headers gone in ASP.NET 5? 我尝试了此链接,但 API 可能已更改。我也不认为这与那个问题是重复的。
【问题讨论】:
【参考方案1】:Request.Headers 返回定义下一个属性的Microsoft.AspNetCore.Http.IHeaderDictionary 接口:
StringValues this[string key] get; set;
IHeaderDictionary 具有与 IDictionary 不同的索引器合约,其中它将返回 StringValues.Empty 以获取缺失的条目。
返回类型:Microsoft.Extensions.Primitives.StringValues
返回:存储的值,如果键不存在,则返回 StringValues.Empty。
因此,您可以简单地使用Request.Headers["environment"]
来获取“环境”标头的值
【讨论】:
【参考方案2】:由于这个答案被浏览的次数很多,你也可以通过参数中的属性来访问这个字段。这是一个例子:
在请求中,您可以访问正文、查询字符串或标题中的任何字段。这是关于授权标头的 Postman 示例:
【讨论】:
以上是关于如何提取自定义标头值?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Jquery Ajax 发送自定义标头并使用 C# 在 WCF 服务中检索相同的标头值?
更新添加为 HttpClient 的 DefaultRequestHeaders 的自定义标头值