Я создаю базовый класс, унаследованный несколькими клиентами для использования. Все они используют разные заголовки.C#: Какой тип используется для коллекции значений заголовков
У меня есть набор значений заголовка, я хочу, чтобы перейти к моему базовому классу с помощью методов «клиента», которые устанавливают client.DefaultRequestHeaders переменного
AuthenticationHeaderValue x = new AuthenticationHeaderValue(authValue.Parameter);
NameValueHeaderValue y = new NameValueHeaderValue("AMSConnect-Version", "1_0_0");
NameValueHeaderValue y2 = new NameValueHeaderValue("AMSConnect-Environment", "Dev");
Нормально, я создать что-то вроде этого, если Я только пытался взаимодействовать с API один раз, и один набор заголовков ...
using (HttpClient client = new HttpClient(handler) { BaseAddress = baseAddress })
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", this.SttiServiceEnv.AccessToken);
client.DefaultRequestHeaders.Add("AMSConnect-Version", "1_0_0");
client.DefaultRequestHeaders.Add("AMSConnect-Environment", "Dev");
Однако тип client.DefaultRequestHeaders
(HttpRequestHeaders
) не имеет сеттеров.
Как создать массив заголовков и передать их клиенту, как это:
using (HttpClient client = new HttpClient(handler) { BaseAddress = baseAddress })
{
client.DefaultRequestHeaders = someVariable;
EDIT: Я получаю, что разрешение будет другой тип, но я надеюсь, что там является контейнером для этого и других типов заголовков.
Почему второй блок кода не работает? То, как вы добавляете свойство 'DefaultRequestHeaders', потому что нет сеттеров. – maccettura
Я создаю базовый класс, унаследованный несколькими клиентами для использования. Все они используют разные заголовки. Добавлено это на вопрос. – CarComp
Хорошо, что побеждает цель клиента DefaultHeaders, вместо этого добавляйте заголовки к каждому запросу. – maccettura