Как добавить пользовательский заголовок в HttpClient
запрос? Я использую PostAsJsonAsync
метод, чтобы опубликовать JSON. Пользовательский заголовок, который мне нужно добавить,
"X-Version: 1"
Это то, что я сделал до сих пор:
using (var client = new HttpClient()) {
client.BaseAddress = new Uri("https://api.clickatell.com/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "xxxxxxxxxxxxxxxxxxxx");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = client.PostAsJsonAsync("rest/message", svm).Result;
}
c#
asp.net
http-headers
dotnet-httpclient
Либин Иосиф
источник
источник
Ответы:
источник
Я нашел ответ на свой вопрос.
Это должно добавить пользовательский заголовок к вашему запросу
источник
Вот ответ, основанный на этом Anubis (который является лучшим подходом, поскольку он не изменяет заголовки для каждого запроса), но который более эквивалентен коду в исходном вопросе:
источник
HttpRequestHeader.Access
должно бытьHttpRequestHeader.Accept
.В классе есть
Headers
свойствоHttpRequestMessage
. Там вы можете добавить свои заголовки, которые будут отправляться с каждым HTTP-запросом. КлассDefaultRequestHeaders
inHttpClient
, с другой стороны, устанавливает заголовки, которые будут отправляться при каждом запросе, отправляемом с использованием этого объекта клиента, отсюда и название Заголовки запросов по умолчанию .Надеюсь, это прояснит ситуацию, по крайней мере, для того, кто увидит этот ответ в будущем.
источник
Headers
это свойство отдельногоHttpRequestMessage
объекта. Таким образом, вы можете создавать разные сообщения с разными заголовками.DefaultRequestHeaders
является свойствомHttpClient
объекта; если через данное сообщение отправлено несколько сообщенийHttpClient
, все такие сообщения будут одинаковоDefaultRequestHeaders
добавлены к отдельным заголовкам сообщения.