J'essaie d'envoyer une requête POST simple à un service Web REST et d'imprimer la réponse (le code ci-dessous provient principalement de la documentation du développeur Yahoo! et des extraits de code MSDN fournis avec La documentation). Je me attends à ce que le client à envoyer:Client C# REST envoyant des données à l'aide de POST
demande Méthode: POST (c.-à-je me attends $ _SERVER [ 'REQUEST_METHOD'] == 'POST' en PHP)
Data: foo = bar (ie $ _POST [ 'foo' ] == 'bar' en PHP)
Cependant, il semble envoyer:
demande Méthode: FOO = BARPOST
données: (blanc)
Je sais que l'API fonctionne comme je l » Je l'ai testé avec des clients écrits en PHP et Python, donc je suis sûr que ça doit être un problème avec mon C#. Je ne suis pas un programmeur .NET par le commerce donc j'apprécierais tous les commentaires/pointeurs sur la façon de comprendre quel est le problème - je suis sûr que c'est quelque chose de trivial mais je ne peux pas le repérer moi-même. Les variables uri, user et password sont définies plus tôt dans le code - elles fonctionnent correctement avec les requêtes GET.
request = (HttpWebRequest) WebRequest.Create(uri);
request.Credentials = new NetworkCredential(user, password);
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/x-www-form-urlencoded";
string postData = "foo=bar";
request.ContentLength = postData.Length;
StreamWriter postStream = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII);
postStream.Write(postData);
postStream.Close();
response = (HttpWebResponse) request.GetResponse();
L'API REST est écrit en PHP et le tableau $ _POST est vide sur le serveur lors de l'utilisation du client C#.