Estoy intentando enviar una solicitud POST simple a un servicio web REST e imprimir la respuesta (el código está debajo, principalmente tomado de la documentación del desarrollador de Yahoo y los fragmentos de código MSDN provistos con algunos de la documentación). Yo esperaría que el cliente envíe:Cliente C# REST enviando datos utilizando POST
Solicitud Método: POST (es decir, espero $ _SERVER [ 'REQUEST_METHOD'] == 'post' en PHP)
datos: foo = bar (es decir, $ _POST [ 'foo' ] == 'bar' en PHP)
Sin embargo, parece ser el envío:
Solicitud Método: FOO = BARPOST
datos: (en blanco)
sé que la API funciona como I' lo he probado con clientes escritos en Python y PHP, así que estoy bastante seguro de que debe ser un problema con mi C#. No soy un programador .NET de oficio, por lo que agradecería cualquier comentario/sugerencia sobre cómo averiguar cuál es el problema. Estoy seguro de que es algo trivial, pero no puedo detectarlo por mi cuenta.
uri, las variables de usuario y contraseña se configuraron anteriormente en el código; funcionan bien con las solicitudes 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();
La API REST está escrito en PHP, y la matriz $ _POST está vacía en el servidor cuando se utiliza el cliente de C#.