Készítünk egy függvényt, mely paraméterként egy web címet vár sztringként, majd visszatérési értékként szintén egy sztringet ad, de az már a kapott web oldal lesz HTML-ben.
private string GetWebContent(string url)
{
Char[] buf = new Char[8192];
int count;
string s = "";
Web-es kéréshez a WebRequest osztály áll rendelkezésünkre, ennek Create függvényét hívva paraméterként átadhatjuk az elérni kívánt web oldal címét.
WebRequest req = WebRequest.Create(url);
Az objektum létrehozása az oldal tartalmát kiolvasni egy StreamReader osztállyal lehet. Ebből kellene most egy új példányt létrehoznunk. Első lépésként a WebRequest osztály GetResponse függvényét hívjuk. Ezzel történik meg tulajdonképpen az oldal tényleges lekérése. A GetResponse függvény egy WebResponse típusú objektumot ad vissza. Ennek pedig van egy GetResponseStream névre hallgató függvénye, mely egy Stream típust szolgáltat, amit átadhatunk a Create-nek, hogy ebből olvashassuk ki a web oldal adatait.
StreamReader sr = new StreamReader(req.GetResponse().GetResponseStream());
A kiolvasáshoz egy ciklust használunk, mivel a létrehozott belső bufferünk csak 8192 bájt méretű, így ha az adott web oldal ennél nagyobb, akkor nem tudnánk egy lépésben kiolvasni.
A ciklusmagban tehát megpróbálunk 8192 bájtot olvasni a stream-ből a Read függvénnyel, melynek visszatérési értéke adja a ténylegesen olvasott bájtok számát.
count = sr.Read(buf, 0, 8192);
A bufferünk területére került bájtokat áthelyezzük egy sztringbe.
s = s + new String(buf, 0, count);
A ciklusunk pedig mindaddig fut, amíg az olvasott bájtok száma nem lesz nulla, vagyis addig, amíg csak van mit olvasni.
Ezek után zárjuk a stream-et és visszaadjuk az átmeneti sztringet, melyben most már a teljes web oldal HTML-ben rendelkezésre áll.