Wie füge ich einer HttpClient
Anfrage einen benutzerdefinierten Header hinzu ? Ich benutze die PostAsJsonAsync
Methode, um den JSON zu posten. Der benutzerdefinierte Header, den ich hinzufügen müsste, ist
"X-Version: 1"
Folgendes habe ich bisher getan:
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
quelle
quelle
Antworten:
quelle
Ich habe die Antwort auf meine Frage gefunden.
Das sollte Ihrer Anfrage einen benutzerdefinierten Header hinzufügen
quelle
Hier ist eine Antwort, die auf der Antwort von Anubis basiert (was ein besserer Ansatz ist, da die Header nicht für jede Anfrage geändert werden), aber dem Code in der ursprünglichen Frage besser entspricht:
quelle
HttpRequestHeader.Access
sollte seinHttpRequestHeader.Accept
.Es gibt eine
Headers
Eigenschaft in derHttpRequestMessage
Klasse. Dort können Sie benutzerdefinierte Header hinzufügen, die bei jeder HTTP-Anforderung gesendet werden. DasDefaultRequestHeaders
in derHttpClient
Klasse legt andererseits Header fest, die mit jeder Anforderung gesendet werden sollen, die mit diesem Clientobjekt gesendet wird, daher der Name Standardanforderungsheader .Ich hoffe, dies macht die Dinge klarer, zumindest für jemanden, der diese Antwort in Zukunft sieht.
quelle
Headers
ist eine Eigenschaft eines einzelnenHttpRequestMessage
Objekts. So können Sie unterschiedliche Nachrichten mit unterschiedlichen Headern erstellen.DefaultRequestHeaders
ist eine Eigenschaft desHttpClient
Objekts; Wenn mehrere Nachrichten über eine bestimmte Nachricht gesendet werdenHttpClient
, werden alle diese Nachrichten gleichDefaultRequestHeaders
zu den einzelnen Headern der Nachricht hinzugefügt.