Ensemble "Content-Type" en-tête à l'aide de RestSharp
Je suis en train de construire un client pour un service de lecture de flux RSS. Je suis à l'aide de la RestSharp bibliothèque d'interagir avec leur API.
L'API états:
Lors de la création ou de la mise à jour d'un enregistrement, vous devez définir
application/json;charset=utf-8
comme leContent-Type
en-tête.
C'est ce que mon code ressemble à ceci:
RestRequest request = new RestRequest("/v2/starred_entries.json", Method.POST);
request.AddHeader("Content-Type", "application/json; charset=utf-8");
request.RequestFormat = DataFormat.Json;
request.AddParameter("starred_entries", id);
//Pass the request to the RestSharp client
Messagebox.Show(rest.ExecuteAsPost(request, "POST").Content);
; Cependant, le service retourne une erreur
Erreur 415: Veuillez utiliser le 'Content-Type: application/json; charset=utf-8' en-tête
Pourquoi n'est-ce pas RestSharp passage de l'en-tête?
- Je ne suis pas familier avec RestSharp, mais je voudrais utiliser un violon pour inspecter la demande pour être sûr de ce que RestSharp EST de passage. Il se peut que le Contenu de l'en-tête de Type a déjà été ajouté et vous avez besoin de remplacer ou de supprimer/ajouter. Je suppose que
request.RequestFormat = DataFormat.Json
est de définir le Type de Contenu d'en-tête pour vous. - Je l'ai essayé avec ou sans cette ligne. La seule option est de JSON ou XML.
- Veuillez post comment la demande de recherche dans un violon, qui permettra de savoir si et à quel Type de Contenu qui a été ajouté, sans ça c'est juste deviner.
- Fait. Il semble que l'en-tête n'est pas en cours d'ajout. Voir: pastebin.com/B0MjHrgD
- Voir la réponse ci-dessous par CodeCaster, ainsi que mes commentaires sur nom/valeur des types de paramètres
Vous devez vous connecter pour publier un commentaire.
La solution fournie sur mon blog n'est pas testé au-delà de la version 1.02 de RestSharp. Si vous soumettez un commentaire sur ma réponse à votre problème spécifique avec ma solution, je peux le mettre à jour.
Dans la version 105.2.3.0 je peux résoudre le problème de cette façon:
Une vieille question, mais toujours haut de ma recherche - ajout de l'exhaustivité.
Bien que c'est un peu vieux: j'ai rencontré le même problème.. parait que certains des attributs tels que "content-type" ou "date" ne peut être ajouté comme paramètre, mais sont ajoutés à l'interne. Pour modifier la valeur de "content-type" j'ai dû changer la serialzer paramètre (bien que je n'ai pas l'utiliser parce que j'ai ajouté un json dans le corps qui a été sérialisé avant!)
dès que je l'ai fait l'en-tête montré comme prévu:
Vous avez probablement rencontré ce problème: https://github.com/restsharp/restsharp/issues/221 Il y a la solution à votre problème @ http://itanex.blogspot.co.at/2012/02/restsharp-and-advanced-post-requests.html
application/x-www-form-urlencoded
Voici la solution
http://restsharp.blogspot.ca/
Créer un objet json avec le même nom de propriétés et définissez les valeurs (assurez-vous qu'ils sont similaires à ceux de paire nom /valeur pour la requête post.)
Après que l'utilisation de défaut httpclient.