Как извлечь пользовательское значение заголовка?

У меня есть этот точный код из принятого ответа в моем проекте, который мне нужно перенести в ASP.NET Core MVP.

Как извлечь значение настраиваемого заголовка в обработчик сообщений Web API?

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

Как я могу реализовать это в.NET Core?

Я надеюсь, что это не считается дублирующим вопросом, потому что я пытаюсь сделать это с новой системой, а не с старой. Мне также будет хорошо, если кто-то добавит ответ на ссылку относительно текущей версии.

Изменение: где все типы заголовков http ушли в 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"] чтобы получить значение заголовка "environment"