J'essaie de poster des données à une API de repos azur. J'ai une demande définie dans Postman qui fonctionne. Maintenant, dans mon code C #, je souhaite utiliser le lorsque j'exécute cela, un httpclient code> au lieu des bibliothèques d'assistance. Dans une tentative de faire cela, j'ai actuellement:
invalidoPerationException code> est lancé qui dit: P>
Misused header name. Make sure request headers are used with HttpRequestMessage, response headers with HttpResponseMessage, and content headers with HttpContent objects.
4 Réponses :
Le type de contenu est un en-tête du contenu, non de la demande, c'est pourquoi cela échoue. Vous pouvez également définir le type de contenu lors de la création du contenu demandé lui-même (notez que l'extrait de code ajoute «Application / JSON» en deux places-pour l'acceptation et les en-têtes de type de contenu)
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));//ACCEPT
Vous avez tort du type Type de contenu i> utilisé pour les demandes également - "Dans les demandes (telles que Post ou Met), le client indique au serveur quel type de données est réellement envoyé." . Le Type de contenu i> -header est passé par stringcontent i> - voir code source .
Avez-vous vu cela TUTO ?
init post votre objet p> httpclient code> p>
Utilisez ceci si vous souhaitez ajouter des en-têtes
var apiClient = new HttpClient() { BaseAddress = new Uri(apiBaseURL) }; var request = new HttpRequestMessage(HttpMethod.Post, "/api/controller/method"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("api-key", mykey); request.Content = new StringContent(json, Encoding.UTF8, "application/json"); var response = apiClient.SendAsync(request).Result; response.EnsureSuccessStatusCode();
Merci. C'était l'approche la plus facile pour mes besoins
Heureux d'avoir aidé.
Essayez ceci:
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
Dupliqué possible de Azure Recherche à l'aide du repos C #