Comment ajouter un en-tête personnalisé à une HttpClient
demande? J'utilise une PostAsJsonAsync
méthode pour publier le JSON. L'en-tête personnalisé que j'aurais besoin d'être ajouté est
"X-Version: 1"
Voici ce que j'ai fait jusqu'à présent:
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
la source
la source
Réponses:
la source
J'ai trouvé la réponse à ma question.
Cela devrait ajouter un en-tête personnalisé à votre demande
la source
Voici une réponse basée sur celle d'Anubis (qui est une meilleure approche car elle ne modifie pas les en-têtes pour chaque requête) mais qui est plus équivalente au code de la question d'origine:
la source
HttpRequestHeader.Access
devrait êtreHttpRequestHeader.Accept
.Il y a une
Headers
propriété dans laHttpRequestMessage
classe. Vous pouvez y ajouter des en-têtes personnalisés, qui seront envoyés avec chaque requête HTTP. LeDefaultRequestHeaders
dans laHttpClient
classe, en revanche, définit les en-têtes à envoyer avec chaque demande envoyée à l'aide de cet objet client, d'où le nom Default Request Headers.J'espère que cela rend les choses plus claires, du moins pour quelqu'un qui verra cette réponse à l'avenir.
la source
Headers
est une propriété d'unHttpRequestMessage
objet individuel . Ainsi, vous pouvez créer différents messages avec différents en-têtes.DefaultRequestHeaders
est une propriété de l'HttpClient
objet; si plusieurs messages sont envoyés via un message donnéHttpClient
, tous ces messages auront tous le mêmeDefaultRequestHeaders
ajouté aux en-têtes individuels du message.