How to extract custom header value?
Solution 1
Request.Headers returns Microsoft.AspNetCore.Http.IHeaderDictionary interface that define next property:
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.
So, you can simply use Request.Headers["environment"]
to get value of "environment" header
Solution 2
Since this answer is viewed quite a lot, you can also access this fields by using attributes in the parameters. Here is an example:
In the request you can access any fields in the body, queryString or headers. Here is the Postman example regarding the authorization header:
Comments
-
Kemal Tezer Dilsiz about 3 years
I have this exact code from the accepted answer in my project which I need to migrate into ASP.NET Core MVP.
How to extract custom header value in Web API message handler?
var env = Request.Headers.GetValues("environment").First();
How can I implement this in .NET Core?
I hope this is not considered to be a duplicate question because I am trying to do this with the new system rather than the old one. I would also be fine if someone adds an answer to the link regarding the current version.
Edit: Where all types for http headers gone in ASP.NET 5? I tried this link but API may have changed. I don't think this is a duplicate for that question either.