Come leggere il codice HTML di una pagina web in Visual Basic .NET

Molto spesso è necessario leggere il codice HTML di una pagina web, il contenuto di un file di testo, di un file XML ecc...

Di seguito una semplicissima funzione VB.NET che consente di fare quanto appena detto:

 

 
Private Function RiceviPagina(ByVal INDIRIZZO As String) As String
    Dim DownloadTemp As String = ""
    Dim _RispostaHeader As String = ""
    Dim _WebResponse As Net.WebResponse = Nothing
    Dim _Stream As IO.Stream = Nothing
    Dim _StreamReader As IO.StreamReader
 
    _HttpWebRequest = CType(Net.WebRequest.Create(INDIRIZZO), Net.HttpWebRequest)
    _HttpWebRequest.Timeout = 10000
    _HttpWebRequest.UserAgent = "UserAgent"
    _WebResponse = _HttpWebRequest.GetResponse
    _RispostaHeader = _WebResponse.Headers.ToString
    MsgBox(_RispostaHeader)
 
    If INDIRIZZO <> _WebResponse.ResponseUri.AbsoluteUri Then
        MsgBox("Redirect da " & INDIRIZZO & " a " & _WebResponse.ResponseUri.AbsoluteUri)
    End If
 
    _Stream = _WebResponse.GetResponseStream()
    _StreamReader = New IO.StreamReader(_Stream, System.Text.ASCIIEncoding.UTF8)
 
    DownloadTemp = _StreamReader.ReadToEnd
 
    _Stream.Close()
    _HttpWebRequest.GetResponse.Close()
    _WebResponse.Close()
    _HttpWebRequest = Nothing
 
    Return DownloadTemp
End Function
Un esempio di utilizzo (aggiungere un tasto e una casella di testo):
 
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    TextBox1.Text = RiceviPagina("http://www.myvirtuallab.org")
End Sub