Laste ned en webside med HttpWebRequest og StreamReader

Kode som laster ned all html-kode fra et nettsted. Samme metode kan brukes til å laste ned andre filer som css, javascript og til og med bilder. Forskjellen på denne metoden i forhold til å Laste ned en webside med WebClient og StreamReader er at denne metoden gir deg en del flere muligheter. Du kan bl.a. sette egne headers, cookies og bestemme hvilken user-agent og referer som skal sendes med. Det er også denne metoden som brukes når man skal sende en “post” mot en server. (se Hvordan man virkelig jukser på kudos.no)

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.vg.no/");
req.UserAgent = "Mozilla MSIE 9.0";
req.Headers.Add("MinHeader", "Dette er en test");

HttpWebResponse res = (HttpWebResponse)req.GetResponse();

Stream s = res.GetResponseStream();
StreamReader sr = new StreamReader(s);
Char[] readBuff = new Char[256];
int count = sr.Read(readBuff, 0, 256);

while (count > 0)
{
    String outputData = new String(readBuff, 0, count);
    Console.Write(outputData);
    count = sr.Read(readBuff, 0, 256);
}

sr.Close();
s.Close();
res.Close();