Muchas veces necesitamos enviar algun mensaje via http. El problema surge si el mensaje contiene espacios. El método de envío recomendado es el método POST. A continuación os pongo el codigo:
//Crea el request con la url que le especifiquemos
HttpWebRequest HttpWRequest = (HttpWebRequest)WebRequest.Create(this.url);
//Importante poner los credenciales sino no podremos realizar bien el envio
//Si nuestro servidor tiene credenciales tendremos que añadirle password y
//contraseña. Para eelo utilizamos el siguiente codigo:
//
//NetworkCredential myCred=new NetworkCredential("usuario", "password");
//CredentialCache MyCrendentialCache = new CredentialCache();
//MyCrendentialCache.Add(URL, "Basic", myCred);
//HttpWRequest.Credentials = MyCrendentialCache;
HttpWRequest.Credentials = CredentialCache.DefaultCredentials;
HttpWRequest.UserAgent = "EJEMPLO";
HttpWRequest.KeepAlive = true;
HttpWRequest.Headers.Set("Pragma", "no-cache");
//Le hemos puesto un timeout de 5 min
HttpWRequest.Timeout = 300000;
// El metodo que usaremos es el POST
HttpWRequest.Method = "POST";
// add the content type so we can handle form data
HttpWRequest.ContentType = "application/x-www-form-urlencoded";
//Pasamos a bytes el mensaje.Recordar que tenemos que poner antes el nombre del id
//que apuntara al mensaje enviado. En este caso hemos escogido param1.
byte[] PostData = System.Text.Encoding.ASCII.GetBytes("param1="+m);
HttpWRequest.ContentLength = PostData.Length;
Stream tempStream = HttpWRequest.GetRequestStream();
//Escribimos los datos
tempStream.Write(PostData, 0, PostData.Length);
tempStream.Close();
Como veis el método es bastante sencillo.
Suscribirse a:
Enviar comentarios (Atom)
3 comentarios:
hola javier tu articulo es muy util sin embar yo tengo una duda todas las conexiones ahi trabajan bajo el puerto 80 por default pero yo quiero hacer una peticion a el puero 1998 o cualquier otro como lo hago ? si mi direccion es
www.latinchat.com/JAVA pero la pericion va al puerto 1998 intente
www.latinchat.com:1998/JAVA
pero no es valido alguna sugerencia ?
Muchas gracias por el articulo, tengo un pequeño problema en:
MyCrendentialCache.Add(URL, "Basic", myCred);
Me indica que la URL no existe en el contexto actual
Donde ubico la variable URL
Gracias por la ayuda
y Como se enviar archivos Zip o XML mediante POST??
Publicar un comentario