Consultar páginas desde el lado del servidor ~ Bitácora del Desarrollador

miércoles, 27 de diciembre de 2006

Consultar páginas desde el lado del servidor

Quería comentar algo que es muy común para el desarrollador habituado a utilizar tecnología AJAX, pero poco usual -pero muy útil- en el ambiente ASP.NET clásico.
Me estoy refiriendo a consultar una página desde el lado del servidor.

En JavaScript -ambientes ajax en el client-side- utilizamos los objetos Msxml2.XMLHTTP o Microsoft.XMLHTTP, sin embargo, el Framework -tanto en sus versiones 1.0, 1.1, 2.0, y 3.0- cuenta con los objetos System.Net.WebRequest y WebResponse.
System.Net.WebRequest es una clase abstracta con la que podemos hacer request para acceder a datos utilizando tanto el protocolo http como ftp.
Por ejemplo el siguiente código;

'Desde de nuestra aplicación importamos System.Net

Dim myRequest As WebRequest
myRequest = WebRequest.Create("
http://sdopico.blogspot.com/")

' Configuramos las credenciales.
myRequest.Credentials = CredentialCache.DefaultCredentials
myRequest.TimeOut = 30 * 1000

'Hacemos el Get
Dim myResponse As HttpWebResponse
myResponse = CType(myRequest.GetResponse(),HttpWebResponse)

' Obtengo el stream con el contenido
Dim data As Stream = myResponse.GetResponseStream()
Dim reader As New StreamReader(data)

' Leo el contenido
Dim responseFromServer As String
responseFromServer = reader.ReadToEnd()

' Hago algo con los datos, en este caso escribo en consola
Console.WriteLine(responseFromServer)
' O lo que necesites hacer con los datos
Response.Write(responseFromServer)

' Cierro
reader.Close()
data.Close()
myResponse.Close()


Posts Relacionados por Secciones



1 comentarios:

Anónimo dijo...

Hola Seba, te paso unos tips para obtener el contenido de la web sin problemas de caracteres especiales (ej. acentos.)

' Luego de la sgte. linea de código
myResponse = CType(myRequest.GetResponse(),HttpWebResponse)

' Agregar (importar System.text)---
Dim encode as Encoding = Encoding.GetEncoding("utf-7")
'----------------------------------

' Obtengo el stream con el contenido
Dim data As Stream = myResponse.GetResponseStream()

' Dim reader As New StreamReader(data)

' Modificar la linea anterior por:
Dim reader As New StreamReader(data,encode)

Saludos!