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.
- Service Pack 1 per Expression Blend
- #28 - Recuperare tutti gli oggetti di un certo tipo di una pagina ASP.NET con LINQ
- Il codice sorgente di .NET Framework 3.5, ASP.NET, WinForms e WPF rilasciato con VS 2008
- #57 - Ottimizzare il trasferimento dei dati binari in WCF
- .NET Framework 3.5 e Visual Studio 2008
- #26 - Rendere univoci gli elementi di una lista con la clausola Distinct di LINQ
- #14 - Eseguire query con LINQ
- #35 - Applicare effetti bitmap agli elementi di WPF
- uno snippet per inserire riga di commento
- LINQ oltre SQL e XML: creare un provider per l'integrazione con Live Search
- Reflection: migliorare le performance
- #20 - Unire liste tramite il Metodo Union di LINQ
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Ho provato ad utilizzare questo script, ma mi torna il seguente errore:CS0246: The type or namespace name 'StreamReader' could not be found (are you ...
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Stampa
Snippet
Download 


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!
Ciao,se la pagina richiesta nell'url è solo una pagina di attesa che dopo un po' esegue un redirect ad un'altra pagina, è possibile catturare quest'...
Continua »»» | Rispondi »»»