Zda funguje? Stačí jej přeci vyzkoušet :-) Doplňte do kódu reálné URL adresy a spusťte ho, kód provede to, o čem jsme se bavili, že je první ze dvou úloh, které potřebujete udělat abyste se dostal k výsledku, který považujete. Tento kód provedet přihlášení ke služce, login.
Dim response = request.GetResponse()
Dívejte se na to tak, jako byste pracoval s webovým prohlížečem. Tento kód je to, co udělá prohlížeč, když kliknete na tlačítko "přihlásit". Jak vidíte, v requestu (požadavku) dojde k vyplnění všech polí, které byste jinak v HTML dokumentu zadávat do formuláže (to byla ta pole jako log, pwd, ...) a až se tyto údaje zapíší do requestu, nezbývá, než jej vykonat voláním GetResponse. Toto volání vrací objekt HttpWebResponse, to je kód výše. Může samozřejmě nastat několik druhů výjimek, jako například když počítač nebude připojen k Internetu, když vytrhnete síťový kabel v půlce vykonávání requestu, když Váš požadavek server odmítne, nebo vyprší timeout atd. Také je dobré zkontrolovat StatusCode u response, 200 znamená OK, 404 stránka nenalezena a podobně, to jistě znáte, případně je snadné si vše dohledat. Pokud se nic takového nestane, v response bude následující: cookies, které uloží nějaký identifikátor sezení, jehož znalost prokazuje to, že jste již login učinil a dosazením té cookie do dalšího requestu zajistíte, že Vám server bude důvěřovat, že jste to příhlášené sezení. Tento mechanismus funguje proto, aby někdo nezavolal stránku s editací bez přihlášení a vesele si needitoval, jak se mu zlíbí. Je potřeba při požadavku na editaci, což je Váš úkol č. 2 prokázat, že jste úspěšně splnil úkol č. 1. Dále Vám response může dát stream, ve kterém bude HTML zdroj stránky, kterou Vám prohlížeč běžně ukazuje po úspěšném přihlášení. K němu se dostanete metodou GetResponseStream(). Vy ale tento kód nepotřebujete, protože u přihlašování jde skutečně jen o tu cookie a dále Vás nic nezajímá. Nyní je na řadě vytvořit další request a v něm se dotázat na stránku editace (action z druhého formuláře), vyplnit pole content, což je jméno té textarey a tyky předat tu cookie (!). Je to úplně to samé jako u přihlašování, opět si získáte response a odchytáte výjimky, zkontrolujete stavový kód, a když se Vám bude chtít, klidně si i můžete zjistit HTML tělo té stránky a za předpokladu, že je validní ho třeba načíst jako XML dokument a pomocí XPath nebo LINQ nad XDocumentem si třeba vytáhnout nějaký pojmenovaný element, jehož obsah informuje o výsledku té editacie. Element o kterém mluvím by mohl mít třeba takovýho HTML kód: <div id="result">Editace OK.</div>, ale to samozřejmě záleží na autorovi webových stránek, které používáte. Pomohlo by mi, kdybyste načrtl kód, který Vám zatím funguje případně kde přesně máte problémy to rozchodit.
|