
Ya te hablamos en un artículo anterior de cómo poder obtener el contenido de una página web a través del lenguaje de programación PHP. Esta vez te vamos a mostrar cómo puedes hacer esto mismo en C#. A continuación tienes el código y posteriormente pasamos a explicártelo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | public static string getContenidoWeb(string url){ //Verifico que tenga prefijado el tipo de protocolo if (!url.Contains ("http://") || !url.Contains ("https://")) { url = "http://" + url; } //Envío petición y recibo la respuesta Uri uri = new Uri (url); System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create (uri); System.Net.HttpWebResponse res = (System.Net.HttpWebResponse)req.GetResponse (); //Proceso respuesta y convierto el flujo de llegada en cadena de caracteres System.IO.StreamReader input = new System.IO.StreamReader (res.GetResponseStream ()); char[] chrBuff = new char[256]; int intLen = 0; string strSource = ""; do{ intLen = input.Read(chrBuff, 0, 256); string strBuff = new string(chrBuff, 0, intLen); strSource += strBuff; }while (intLen > 0); return strSource; } |
En principio, hemos creado esta función como estática para poder llamarla sin tener que crear una instancia de la clase a la cual pertenezca, aunque es tu decisión el situar dicha función en la clase adecuada y fijarla como estática o no. También queda en tu mano el procesamiento y tratamiento de errores que, por simplicidad, lo hemos obviado.
Como puedes ver, la función tiene como parámetros la url del sitio web del cual quieres obtener su código, en forma de cadena de texto. Una vez que es llamada, lo primero que hace es verificar que la url que le llega como parámetro tenga prefijado el protocolo HTTP o HTTPS y, si no es así, se lo añade.
Seguidamente, crea una petición HttpWebRequest y obtiene la respuesta en el objeto de la clase HttpWebResponse. Por último, convierte el flujo de llegada de datos en una cadena de caracteres, devolviendo ésta como resultado de la llamada a dicha función.
