Hagamos que México crezca..

Prefiere el consumo de lo Hecho en México

Prefiere el consumo de lo Hecho en México
BúsquedaHagamos que México crezca..
![]() Prefiere el consumo de lo Hecho en México Posts Recientes
Conversación |
Enviando datos a un servidor web a traves de HTTP via metodo POST con C# y Mono en LinuxHace unos días estaba terminando una aplicación desarrollada para Windows Mobile que solicitaba en algun momento información a un servidor web, pero el método que usaba mandaba parámetros vía el método GET, por lo que en algún momento si la cadena que pasaba como parámetro en el URI contenía el caracter # entonces esto evitaba que la cadena pasara completamente, por lo que el valor devuelto por el script PHP no procesaba correctamente bien los otros parámetros y me regresaba un error.
Entonces lo que se me ocurrió fué algo muy simple, pues en vez de enviar la información vía GET, hacerlo usando vía POST, por lo que me puse a investigar como hacer esto. Encontré un pedazo de código que hace esto, pero como ando en Linux me dió una flojera reiniciar mi máquina para entrar en Windows y probar el código con Visual Studio .NET 2005, por lo que conociendo la compatibilidad que tiene el proyecto Mono en Linux lidereado por el mexicano Miguel de Icaza con el entorno .Net, entonces no dude en agarrar mi editor scite y empezar a probar el código. El código mencionado es el siguiente:
using System; using System.IO; using System.Net; using System.Text; namespace Examples.System.Net { public class WebRequestPostExample { public static void Main () { // Crea una peticion usando una URL, que puede recibir datos vía POST WebRequest request = WebRequest.Create ("http://localhost/openssl/index.php"); // Define la propiedad Method a POST request.Method = "POST"; // Crea un string que contiene la información que pasará y lo convierte a un byte array string location = "source_string=This is a test #/\''%#that posts this string to a Web server.&location=MTY"; byte[] byteArray = Encoding.UTF8.GetBytes (location); // Define la propiedad del ContentType request.ContentType = "application/x-www-form-urlencoded"; // Define el tamaño del contenido request.ContentLength = byteArray.Length; // Obtiene la peticion al stream Stream dataStream = request.GetRequestStream (); // Escribe los datos al stream dataStream.Write (byteArray, 0, byteArray.Length); // Cierra el objeto stream dataStream.Close (); // Obtiene respuesta WebResponse response = request.GetResponse (); // Muestra el status de la conexion Console.WriteLine (((HttpWebResponse)response).StatusDescription); // Obtiene la informacion regresada por el servidor dataStream = response.GetResponseStream (); // Abre el stream usando un objeto Stream Reader para facil acceso StreamReader reader = new StreamReader (dataStream); // Lee el contenido string responseFromServer = reader.ReadToEnd (); // Muestra el contenido Console.WriteLine (responseFromServer); // Limpia el stream reader.Close (); dataStream.Close (); response.Close (); } } }
<?php print $_POST["source_string"].":::::::::::".$_POST["location"]; ?> Este pedazo de código funciona para Linux y Windows sin ningún problema y permite desde alguna aplicación hecha con C#, conectarse a un servidor web y hacer peticiones vía el método POST. #2 Re:Enviando datos a un servidor web a traves de HTTP via metodo POST con C# y Mono en Linux
Filein Rommel Leon, <E-Mail> / 19 August, 1:19am
Ya verificaste la ruta del script de PHP a dónde accede el script de C# ? [ Responder (0) ]
#3 Re:Enviando datos a un servidor web a traves de HTTP via metodo POST con C# y Mono en LinuxHola que tal, si ya he checado eso y al parecer no llega nada en POST, estoy probando con Apache, php5, el servidor responde exitosamente a la aplicacion, seguire intentando gracias [ Responder (0) ]
#4 Re:Enviando datos a un servidor web a traves de HTTP via metodo POST con C# y Mono en Linux
arzu, <> / 22 August, 5:20am
Me ha funcionado perfectamente. Gracias por el aporte. [ Responder (0) ]
Dejar un comentario
Fuentes XML de comentario: RSS | Atom
|
Nube de EtiquetasEventosEncuestaComentarios Recientes
|
#1 Re:Enviando datos a un servidor web a traves de HTTP via metodo POST con C# y Mono en Linux
Hola que tal, he probado este codigo en WinForms con VS2008 y al parecer funciona bien en la conexion pero en el codigo php no recibe nada en las variables. He intentado incluso escribirlas en un log lo que llega pero sin resultados. ¿Alguna idea?