Jak dodać niestandardowy nagłówek do HttpClient
żądania? Używam PostAsJsonAsync
metody, aby opublikować JSON. Niestandardowy nagłówek, który musiałbym dodać, to
"X-Version: 1"
Oto, co zrobiłem do tej pory:
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
Libin Joseph
źródło
źródło
Odpowiedzi:
źródło
Znalazłem odpowiedź na swoje pytanie.
To powinno dodać niestandardowy nagłówek do twojego żądania
źródło
Oto odpowiedź oparta na odpowiedzi Anubisa (co jest lepszym podejściem, ponieważ nie modyfikuje nagłówków dla każdego żądania), ale która jest bardziej równoważna z kodem w oryginalnym pytaniu:
źródło
HttpRequestHeader.Access
powinno byćHttpRequestHeader.Accept
.W klasie jest
Headers
właściwośćHttpRequestMessage
. Możesz tam dodać niestandardowe nagłówki, które będą wysyłane z każdym żądaniem HTTP. Z drugiej strony klasaDefaultRequestHeaders
wHttpClient
klasie ustawia nagłówki, które mają być wysyłane z każdym żądaniem wysyłanym przy użyciu tego obiektu klienta, stąd nazwa Default Request Headers.Mam nadzieję, że to wszystko wyjaśni, przynajmniej dla kogoś, kto zobaczy tę odpowiedź w przyszłości.
źródło
Headers
jest własnością pojedynczegoHttpRequestMessage
przedmiotu. W ten sposób możesz tworzyć różne wiadomości z różnymi nagłówkami.DefaultRequestHeaders
jest własnościąHttpClient
przedmiotu; jeśli przez daną wysyłanych jest wiele wiadomościHttpClient
, wszystkie takie wiadomości będą miały to samoDefaultRequestHeaders
dodane do poszczególnych nagłówków wiadomości.