asp.net 如何提取自定义头值?

8zzbczxx  于 12个月前  发布在  .NET
关注(0)|答案(3)|浏览(143)

我有这个确切的代码从我的项目中接受的答案,我需要迁移到ASP.NET核心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可能已经改变。我不认为这是一个重复的问题。

ubby3x7f

ubby3x7f1#

请求.头返回定义下一个属性的Microsoft.AspNetCore.Http.IHeaderDictionary接口:

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

字符串
IHeaderDictionary与IDictionary有不同的索引器协定,在IDictionary中,它将返回StringValues.Empty以查找缺少的条目。
返回类型:Microsoft.Extensions.Primitives.StringValues
返回:存储的值,或StringValues。如果键不存在,则为空。
因此,您可以简单地使用Request.Headers["environment"]来获取“environment”头的值

34gzjxbg

34gzjxbg2#

由于这个答案被查看了很多,你也可以通过在参数中使用属性来访问这个字段。下面是一个例子:


的数据
在请求中,您可以访问body、queryString或header中的任何字段。下面是Postman关于authorization header的示例:


sf6xfgos

sf6xfgos3#

你可以使用这个:

Request.Headers.TryGetValue("environment", out var headerValue);

字符串

相关问题