In uno scorso articolo dedicato alle classi di rete del .NET framework, abbiamo parlato della risoluzione dei nomi tramite i server DNS, questa volta ci occuperemo delle connessioni con pagine web attraverso il protocollo HTTP. Le classi più importanti per la realizzazione di connessioni HTTP sono WebRequest e WebResponse. Queste due classi consentono di sfruttare in maniera semplice le caratteristiche delle connessioni HTTP. Vediamo un esempio in C# per la connessione con una pagina web facendo ritornare il documento HTML della web page.
using System; using System.IO; using System.Net; using System.Text; public class Corso { static void Main(string[] args) { WebRequest wr = WebRequest.Create(http://www.rgpsoft.it); wr.Credentials = CredentialCache.DefaultCredentials; HttpWebResponse hwr = (HttpWebResponse)wr.GetResponse(); Console.WriteLine(hwr.StatusDescription); Stream ds = hwr.GetResponseStream(); StreamReader sr = new StreamReader(ds); string buffer = sr.ReadToEnd(); Console.WriteLine(buffer); sr.Close(); ds.Close(); hwr.Close(); Console.ReadKey(); } }
Lo stesso esmpio ma in linguaggio VB.NET
Imports System.Net Imports System.IO Imports System.Text Module Corso Sub Main() Dim wr As WebRequest, hwr As HttpWebResponse Dim ds As Stream, sr As StreamReader, buffer As String wr = WebRequest.Create(http://www.rgpsoft.it) wr.Credentials = CredentialCache.DefaultCredentials hwr = wr.GetResponse() Console.WriteLine(hwr.StatusDescription) ds = hwr.GetResponseStream() sr = New StreamReader(ds) buffer = sr.ReadToEnd() Console.WriteLine(buffer) sr.Close() ds.Close() hwr.Close() Console.ReadKey() End Sub End Module
Da notare che con queste due classi abbiamo il pieno supporto alle connessioni HTTP, perfino quelle tramite SSL, infatti attraverso WebRequest.Credentials è possibile ottenere l’accesso ad un web server che richiede autenticazione basic, digest, NTLM o Kerberos. Altra caratteristica che è possibile implementare attraverso le Net classes del framework è costituita dallo sfruttamento della proprietà Pipelined, quindi inviare più richieste senza dover attendere la risposta del server; possiamo anche indicare l’utilizzo di un server proxy per ottenere la connessione.
<< Lezione Precedente – Inizio Corso – Indice Lezioni – Lezione Successiva >>