Hallo ich hab mir vorgenommen ein tutorial zum login via httpwebrequest zu erstellen
also los gehts
Schritt 1: der HTML File
der html file für eine Anmeldung läuft technich gesehen, egal wie komplex er aufgebaut ist immer auf dieses ergebnis raus:
das bedeutet etwa:
1. formular erstellen das beim absenden die test.php aufruft mit dem methodentyp post
2. eine textbox gehört zum formular, ihr inhalt wird über den namen(username) abgerufen
3. eine Passwordtextbox gehört zum formular, ihr inhalt wird über den namen(pw) abgerufen
4. ein button sendet das formular ab
5. ende des formulars
für uns heisst das soviel wie
eine post methode, die beim absenden den inhalt von username und pw sendet also ist der post inhalt, der in den stream kommt username=TextDerTextbox&pw=TextDerPasswordBox
und der entsprechende link ist OrdnerDieserHtmlDatei/test.php
der referer link ist der link zu der html datei aus der wir den code haben
Schritt 2: Programmieren
In Visual basic muss zu erst mal die System.Net und system.IO importiert werden
dann wird eine übergeordnete(globale) variable erstellt, vom type cookiecontainer
im bsp heisst sie ccon
nun einige variablen deklarieren:
nun zur erklärung
1. den cookiecontainer initialisieren
2. die url zum loginfile in einer variable speichern(eigentlich unnötig)
3. den poststring in einer variable speichern(übersichtshalber)
4. den PostString als byte array speichern
5. das HttpWebRequest erstellen
nun müssen einige einstellungen geändert werden
1. Art der methode festlegen(aus schritt 1 wissen wir das es eine form mit der methode post war)
2. die länge des zu postenden strings festlegen
3. die html/php datei die eigentlich das loginformular senden sollte
4. den cookiecontainer zuweisen (!!WICHTIG!!)
5. den Useragend Festlegen (sagt dem server welcher browser verwendet wird in diesem fall simuliert es firefox)
6. umleitungsanfragen erlauben
Nun fehlt nur noch das senden des post strings
dafür erstellen wir einen Stream und schreiben den command rein
1. Den stream erstellen und öffnen
2. Daten in den stream schreiben (datenarray, anfangspunkt im stream, länge des arrays)
dann wird der server einen antwortstream in form eines html codes senden den bekommen wir mit eine webresponse
1. Die antwort des servers erhalten
2. den stream mit einem reader öffnen
endlich den html code rauslesen und speichern
nun nur noch einige releases vornehmen
hoffe es hat wenigstens einem geholfen
Verbesserungsvorschläüge/Kritik bitte posten
also los gehts
Schritt 1: der HTML File
der html file für eine Anmeldung läuft technich gesehen, egal wie komplex er aufgebaut ist immer auf dieses ergebnis raus:
das bedeutet etwa:
1. formular erstellen das beim absenden die test.php aufruft mit dem methodentyp post
2. eine textbox gehört zum formular, ihr inhalt wird über den namen(username) abgerufen
3. eine Passwordtextbox gehört zum formular, ihr inhalt wird über den namen(pw) abgerufen
4. ein button sendet das formular ab
5. ende des formulars
für uns heisst das soviel wie
eine post methode, die beim absenden den inhalt von username und pw sendet also ist der post inhalt, der in den stream kommt username=TextDerTextbox&pw=TextDerPasswordBox
und der entsprechende link ist OrdnerDieserHtmlDatei/test.php
der referer link ist der link zu der html datei aus der wir den code haben
Schritt 2: Programmieren
In Visual basic muss zu erst mal die System.Net und system.IO importiert werden
dann wird eine übergeordnete(globale) variable erstellt, vom type cookiecontainer
im bsp heisst sie ccon
nun einige variablen deklarieren:
nun zur erklärung
1. den cookiecontainer initialisieren
2. die url zum loginfile in einer variable speichern(eigentlich unnötig)
3. den poststring in einer variable speichern(übersichtshalber)
4. den PostString als byte array speichern
5. das HttpWebRequest erstellen
nun müssen einige einstellungen geändert werden
Quellcode
- req.Method = "POST"
- req.ContentType = "application/x-www-form-urlencoded"
- req.ContentLength = pdata.Length
- req.Referer = "http://127.0.0.1/test1.php"
- req.CookieContainer = ccon
- req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7"
- req.AllowAutoRedirect = True
1. Art der methode festlegen(aus schritt 1 wissen wir das es eine form mit der methode post war)
2. die länge des zu postenden strings festlegen
3. die html/php datei die eigentlich das loginformular senden sollte
4. den cookiecontainer zuweisen (!!WICHTIG!!)
5. den Useragend Festlegen (sagt dem server welcher browser verwendet wird in diesem fall simuliert es firefox)
6. umleitungsanfragen erlauben
Nun fehlt nur noch das senden des post strings
dafür erstellen wir einen Stream und schreiben den command rein
1. Den stream erstellen und öffnen
2. Daten in den stream schreiben (datenarray, anfangspunkt im stream, länge des arrays)
dann wird der server einen antwortstream in form eines html codes senden den bekommen wir mit eine webresponse
1. Die antwort des servers erhalten
2. den stream mit einem reader öffnen
endlich den html code rauslesen und speichern
nun nur noch einige releases vornehmen
hoffe es hat wenigstens einem geholfen
Verbesserungsvorschläüge/Kritik bitte posten