1 messaggio dal 13 marzo 2003
ma se la richiesta della pagina da catturare prevede l' invio di dati POST come si fa?

Grazie Gianni Di Mitri
L'invio di dati in post è piuttosto semplice; fondamentalmente è necessario creare la stringa da inviare, composta esattamente come se fosse una querystring (ad es: "input1=value1&input2=value2&input3=value3") e scriverla nella RequestStream della WebRequest.
Detta così sembra complicato ma un esempio di codice dovrebbe rendere l'idea :
Uri url = new Uri("http://www.yoursite.com/login.aspx");
WebRequest r = WebRequest.Create(url);
r.Method = "POST";
string postData = "txtUsername=YOUR_USERNAME&txtPassword=YOUR_PASSWORD";
byte[] data = Encoding.UTF8.GetBytes(postData);
r.ContentLength = data.Length;
r.ContentType = "application/x-www-form-urlencoded";
using (System.IO.Stream s = r.GetRequestStream())
{
    s.Write(data, 0, data.Length);
}
string html = string.Empty;        
using (WebResponse response = r.GetResponse())
{
    using (Stream stream = response.GetResponseStream())
    {
        using (StreamReader sr = new StreamReader(stream))
        {
            html = sr.ReadToEnd();
        }
    }
}

Nota: ho omesso i namespace da usare che sono System.Net e System.IO.

Su MSDN trovi un esempio un po' più completo e dettagliato (anche se il codice non è scritto benissimo visto che non effettua le dispose degli stream...): http://msdn.microsoft.com/en-us/library/debx8sh9.aspx

HTH!

Matteo Casati
GURU4.net

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.