čtvrtek 4. listopadu 2010

Stahování zabezpečeného obsahu z webu

zamekDneska to bude velice krátké, ale doufejme smyslu plné a budeme se zabývat stažením obsahu z internetu přes http protokol.

Pokud chceme stáhnout programově nějaký obsah z internetu, tak to není problém a způsobů je několik. Jedním z nich je použití objektů HttpWebRequest a HttpWebResponse ze jmeného prostoru System.Net. Příklad stažení obsahu webové stránky je zde:

HttpWebRequest httpRequest = (HttpWebRequest)HttpWebRequest.Create(@"http://www.hrncir.info");
HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse();
Stream stStream = httpResponse.GetResponseStream();
StreamReader strReader = new StreamReader(stStream);

string sResult = strReader.ReadToEnd();

httpRequest.Abort();
httpResponse.Close();

Nicméně pokud se bude jednat o obsah zabezpečený, tento způsob nám nebude nic platný. V ten okamžik ale můžeme standartnímu serverovému zabezpečení vyhovět tím, že přidáme požadované pověření. Pro změnu si v příkladu stáhněme XML dokument ze zabezpečené složky na serveru kdesi na internetu:

HttpWebRequest httpRequest = (HttpWebRequest)HttpWebRequest.Create(@"http://www.hrncir.info/protected/document.xml");
httpRequest.Credentials = new NetworkCredential("username", "password");
HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse();
Stream stStream = httpResponse.GetResponseStream();

XmlDocument xdXml = new XmlDocument();
xdXml.Load(stStream);

httpRequest.Abort();
httpResponse.Close();

Na závěr jenom zmíním alternativu k tomuto způsobu stahování dat a to objekt WebClient ze jmeného prostoru System.Net ,který umožňuje to samé co dnešní příklady a ještě mnoho dalšího.


Žádné komentáře:

Okomentovat