Httpclient с 2 запросами заголовков

#c#

#c#

Вопрос:

Мне нужно подключиться к программному обеспечению редактора PHP Api Post Json, и мне нужно добавить заголовок для аутентификации:

  • «Токен» ключ
  • «Content-Type», «application / json»

У меня есть мой контент

 var content = new StringContent(JsonConvert.SerializeObject(dtu, Formatting.Indented, new JsonSerializerSettings
{
   NullValueHandling = NullValueHandling.Ignore
}));
ByteArrayContent(System.Text.Encoding.UTF8.GetBytes(content));
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
 

Затем я пытаюсь подключиться к API

 using (var client = new HttpClient())
{
    client.BaseAddress = new Uri(baseurl);
    client.DefaultRequestHeaders.Authorization =
        new AuthenticationHeaderValue("Token", config.readStringKey("token"));
    var result = client.PostAsync(baseurl, content)
        .ResultContent.ReadAsStringAsync();
}
 

Но мне нужно добавить вторую строку в заголовки.Значение AuthenticationHeaderValue как

Захват экрана https://imgur.com/a/UPU18sj

Как мне это сделать?

Комментарии:

1. client.DefaultRequestHeaders.Authorization заключается в установке Authorization заголовка. Вы не делаете то же самое в Postman. В Postman вы устанавливаете Token заголовок.

2. client.DefaultRequestHeaders.Add("Token", config.readStringKey("token"))

Ответ №1:

Вы можете использовать заголовки запросов по умолчанию, если получатель позволяет это:

 // depending on token encoding you can add 'Token' to default headers dictionary. in this case: a bearer token
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}"));
client.DefaultRequestHeaders.Add("content-type", "application/json"));