Comment définir l’en-tête Content-Type pour une requête HttpClient ?
Source : Stack Overflow
Le type de contenu est un en-tête du contenu, pas de la requête, c’est pourquoi cela échoue. AddWithoutValidation comme suggéré par Robert Levy pourrait fonctionner, mais vous pouvez aussi définir le type de contenu lors de la création du contenu de la requête lui-même (notez que l’extrait de code ajoute application/json à deux endroits - pour les en-têtes Accept et Content-Type) :
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://example.com/");
client.DefaultRequestHeaders
.Accept
.Add(new MediaTypeWithQualityHeaderValue("application/json"));//ACCEPT header
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "relativeAddress");
request.Content = new StringContent("{\"name\":\"John Doe\",\"age\":33}",
Encoding.UTF8,
"application/json");//CONTENT-TYPE header
client.SendAsync(request)
.ContinueWith(responseTask =>
{
Console.WriteLine("Response: {0}", responseTask.Result);
});