HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Web lap letöltése tetszőleges címről HTML-ben


Példaprogram letöltése

6710 bájt

Ha adott egy web cím, pl.: http://www.SoftwareOnline.hu, akkor az itt elérhető web oldalt lekérhetjük programból egyszerű módszerrel. Az eredmény egy egyszerű szöveg lesz, mely HTML kódot tartalmaz. Ezzel ettől kezdve már bármit megtehetünk: megjeleníthetjük, feldolgozhatjuk (például webes kereső rendszer esetén).

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.
      do
      {
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.
      }
      while (count != 0);        
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.
      sr.Close();
      return s;
    }

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2001 évkönyv 218. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |