Comment définir l'en-tête Content-Type pour une requête HttpClient ?

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);
      });