Jak se pmocí VB přihlásit na webové stránky a pak stáhnout obsah   zodpovězená otázka

VB.NET, HTTP/HTML

Dobrý den,

Potřebuji se pomocí VB přihlásit na pozadí na nějaké webové stránky a po přihlášení stáhnout obsah stránek (který je přístupný jen po přihlášení).

Příklad: Potřebuji se přihlásit do redakčního systému, tam si stahnout plán dovolených zaměstnanců (nemůžu do MySQL, stačí mi úplně, co je vidět na obrazovce, s tím si pak poradím)

** Co jsem zkusil:

1) Umím stáhnout obsah zvolené stránky se zadanou URL (kód viz níže). Ovšem je to adresa bez přihlášení - ale nevím, zda to takto půjde, pokud se budu muset před tím přihlásit, tj. musí zůstat v session ap.

* skript je v ASPX, VS 2008, ale nevím, zda nebude lepší standardní Windows formulář:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim txt As String
        txt = (GetHtmlPage("http://www.stranky.xy"))

    End Sub
    Function GetHtmlPage(ByVal strURL As String) As String
        Dim strResult As String
        Dim objResponse As WebResponse
        Dim objRequest As WebRequest = HttpWebRequest.Create(strURL)
        objResponse = objRequest.GetResponse()
        Dim sr As New StreamReader(objResponse.GetResponseStream())
        strResult = sr.ReadToEnd()
        sr.Close()
        Return strResult
    End Function

2) Objevil jsem (dnes poprvé) WScript - možnost, kde lze zadat hodnoty do formulářových polí a odeslat. Jak jsem pochopil, musí to být jako skript ve html-stránce. Ale VS 2008 u mne nezná Wscript objekt (jistě moje chyba), takže neumím použít.

** Dotazy/prosba:

1) Jak se přilogovat? Jak pak načíst stránku - stačí mi uvedený příklad výše? (vítám tip, směr, příklad ... - jsem snaživý :-) )

2) Lze využít WScript?

3) Lze to celé provést na pozadí?

Velmi díky!!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Stáhněte si nejdřív aplikaci Fiddler, která odchytává HTTP komunikaci, přihlašte se do aplikace z prohlížeče a podívejte se, co tam prohlížeč posílá za hlavičky a za data. Typicky se to dělá jedním POST požadavkem, kde v těle dotazu bude něco jako "user=uzivatel&heslo=mojeHeslo". Je důležité, aby vedl na správnou adresu.

Pokud pak poskládáte takový dotaz a pošlete ho na server (HttpWebRequest to umí, stačí mu nastavit metodu POST a data, která má odeslat, pravděpodobně také hlavičku content-length, i když to si možná nastavuje sám), pak server pravděpodobně přesměruje na stránku, na kterou se dostanete po přihlášení. Záleží na konkrétním systému.

Pokud je to jednoduchý případ, tak pošlete ten POST a server vrátí rovnou stránku, kterou chcete. Pokud potom ještě musíte lézt na nějakou další stránku, pak je nutné sledovat hlavičku Set-Cookie a posílat ji v následujícím požadavku zpátky (zase, ve Fiddleru to uvidíte, co se tam děje).

Můžete použít i WScript a celé to jde na pozadí.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Dobrý den, velmi děkuji!! Vyzkouším. Hezký den!

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback