Il .NET Framework ci mette a disposizione alcuni classi che ci permettono di effettuare delle richieste web e di analizzarne la risposta proprio come fa un browser web.
Questo tipo di implementazione normalmente viene utilizzata quando si ha la necessità di dover indicizzare in un proprio motore di ricerca delle pagine web che non sono accessibili direttamente da file, oppure sono generate dinamicamente tramite un engine server side proprio come avviene per le pagine ASP.NET.
Lo script seguente mostra come creare una richiesta web e leggere lo stream restituito dal server, mettendo il tutto in una variabile locale da utilizzare per i nostri scopi:
string html = string.Empty; Uri uri = new Uri(@"http://www.tuosito.it"); System.Net.WebRequest request = System.Net.WebRequest.Create(uri); using (System.Net.WebResponse response = request.GetResponse()) { using (System.IO.Stream stream = response.GetResponseStream()) { using (StreamReader sr = new StreamReader(stream)) { html = sr.ReadToEnd(); } } }
Avendo la variabile popolata, possiamo utilizzare una regular expression per filtrarla o utilizzare il codice per quel che più preferiamo.
E' da tenere in considerazione l'idea che il server a cui si effettua la richiesta può non rispondere velocemente e può essere non raggiungile al momento della stessa, per cui è preferibile eseguire questa funzione in una chiamata asincrona in modo da evitare timeout o interfacce bloccate.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Visualizzare contenuti Fullscreen con HTML5
- Leggere e scrivere su cookie tramite Blazor
- Richiamare programmaticamente le operazioni di aggiornamento, eliminazione e inserimento di FormView, DetailsView e GridView
- Realizzare siti sicuri con ASP.NET Web Pages
- Il web control DropDownList di ASP.NET
- Un helper method per replicare un template per ogni proprietà con ASP.NET MVC
- Operazioni di selezione su una DataTable
- Dependency injection in ASP.NET MVC 5 con Ninject
- Aumentare la scalabilità di ASP.NET Core Web API con caching client side
- Accedere con ASP.NET ad un documento XML creato dall'oggetto recordset di ADO e ASP