2016-08-05 14 views
13

Ich habe diesen genauen Code aus der angenommenen Antwort in meinem Projekt, die ich in ASP.NET Core MVP migrieren muss.Wie Extrahieren benutzerdefinierten Header-Wert in Web API-Nachrichtenhandler in .NET Core?

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

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

Wie kann ich dies in .NET-Core implementieren?

Ich hoffe, dies wird nicht als eine doppelte Frage betrachtet, weil ich versuche, dies mit dem neuen System und nicht mit dem alten System zu tun. Mir wäre es auch gut, wenn jemand dem Link eine Antwort auf die aktuelle Version hinzufügt.

Edit: Where all types for http headers gone in ASP.NET 5? Ich habe diesen Link versucht, aber API kann geändert haben. Ich denke nicht, dass dies auch ein Duplikat für diese Frage ist.

Antwort

17

Request.Headers zurück Microsoft.AspNetCore.Http.IHeaderDictionary Schnittstelle, die nächste Eigenschaft definieren:

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

IHeaderDictionary hat einen anderen Indexer Vertrag als IDictionary, wo es StringValues.Empty für fehlende Einträge angezeigt werden können.

Rückgabetyp: Microsoft.Extensions.Primitives.StringValues ​​

Returns: Der gespeicherte Wert oder StringValues.Empty, wenn der Schlüssel nicht vorhanden ist.

So können Sie einfach Request.Headers["environment"] verwenden Wert von "Umwelt" Header zu bekommen