Hallo leute,
Da sich einige leute so eine Tutorial gewünscht haben.
Heute möchte ich euch zeigen wie man sich auf einer Seite mit der HttpWebRequest Klasse einloggt
(in diesem fall vb-community.eu), und somit guckt ob der Login für die Seite Funktioniert.
Was wir als erstes brauchen:
Live HTTP Headers (Download):
https://addons.mozilla.org/de/firefox/addon/3829
Wir gehen als erstes mal auf die Seite
www.vb-community.eu, dort sehen wir dann den Link
„Anmelden“ – Auf diesen link klicken wir einmal mit dem Mausrad drauf.
Wenn ihr da drauf geklickt habt seht ihr den Login für vb-community!
Aber bevor wir weiter machen starten wir erst mal LiveHttpHeaders!
Dazu geht ihr unter Firefox > Extras > Live http Headers.
Dabei müsst ihr darauf achten das bei Mitschneiden der Haken gesetzt ist.
So jetzt habt ihr die Grundlage um den Post mit zuschneiden. Aber ihr müsst Live http Headers geöffnet lassen!
Jetzt braucht ihr einen Account zu der Seite dessen du Checken willst.
Ihr gebt die Account Daten ein und drückt Anmelden.
(Bitte achtet darauf dass Live http Header offen ist!)
Jetzt hat euer Live http Headers natürlich den Post mit geschnitten, und das sieht dann so aus:
Hier geht ihr auf „Alles Speichern“ und Speichert es, somit wir jetzt zum Code kommen

Als erstes Importieren wir:
|
Visual Basic Quellcode
|
1
|
Imports System.IO, System.Net, System.Text
|
Jetzt Deklarieren wir erstmal 2 Variablen, nämlich User & pwd. (im Form_Load)
|
Visual Basic Quellcode
|
1
|
Dim User = "", Pwd = ""
|
Als nächtest kommt der Teil des Codes wo wir angeben auf welcher Webseite wir uns einloggen wollen.
|
Visual Basic Quellcode
|
1
|
Dim Request As HttpWebRequest = CType(WebRequest.Create(""), HttpWebRequest)
|
machen wir zu:
|
Visual Basic Quellcode
|
1
|
Dim Request As HttpWebRequest = CType(WebRequest.Create("http://www.vb-community.eu/index.php?form=UserLogin"), HttpWebRequest)
|
Da das die Url ist unter der mann sich einloggen kann.
Die Url Findet mann heraus indem man rechtsklick auf „Anmelden“ macht und dann auf link-adresse kopieren!
Jetzt fügt ihr noch Method & Content Type hinzu:
|
Visual Basic Quellcode
|
1
|
Request.Method = "POST" Request.ContentType = "application/x-www-form-urlencoded"
|
Status:
Nun fügen wir noch mal einen dicken Blog ein.
|
Visual Basic Quellcode
|
1
|
Dim Post As String = "" Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post) Request.ContentLength = byteArray.Length Dim DataStream As Stream = Request.GetRequestStream() DataStream.Write(byteArray, 0, byteArray.Length) DataStream.Close()
|
In der Variable „Post“ steht der Post, jetzt öffnet ihr die Textdatei die ihr vorher
Gespeichert habt, und guckt mittels Strg+f wo euer Passwort in der Textdatei steht.
Bei mir ist es die reihe unter: „Content-Length:“.
Mein Code ist:
|
Visual Basic Quellcode
|
1
|
loginUsername=MEINBENUTZERNAME&loginPassword=MEINPASSWORT&useCookies=1&url=
|
Da wo MEINBENUTZERNAME und MEINPASSWORT steht, da sind normalerweise eure Account Daten!
Diesen Code ändern wir jetzt so dass wir nachher die Account Daten in der Variable User & pwd bestimmen können.
Nämlich in:
|
Visual Basic Quellcode
|
1
|
loginUsername=" & User & "&loginPassword=" & Pwd & "&useCookies=1&url==
|
Unser Code wo wir den POST festlegen sieht dann so aus:
|
Visual Basic Quellcode
|
1
|
Dim Post As String = "loginUsername=" & User & "&loginPassword=" & Pwd & "&useCookies=1&url="
|
Jetzt fügen wir nochmal einen dicken blog ein:
|
Visual Basic Quellcode
|
1
2
3
4
5
|
Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post)
Request.ContentLength = byteArray.Length
Dim DataStream As Stream = Request.GetRequestStream()
DataStream.Write(byteArray, 0, byteArray.Length)
DataStream.Close()
|
Den Quelltext holen wir uns mit:
|
Visual Basic Quellcode
|
1
2
3
4
5
6
7
|
Dim Response As HttpWebResponse = Request.GetResponse()
DataStream = Response.GetResponseStream()
Dim reader As New StreamReader(DataStream)
Dim ServerResponse As String = reader.ReadToEnd()
reader.Close()
DataStream.Close()
Response.Close()
|
Dann müsste euer Code so aussehen:
Und jetzt kommen wir endlich zu der schon oben angesprochenen Abfrage ob ein Bestimmtes Word auf der Seite nach dem Einloggen ist. Und da wir uns ja den Quelltext schon geholt habe können wir das auch ganz Bequem via InStr prüfen.
Unser Code lautet daher:
|
Visual Basic Quellcode
|
1
2
3
4
5
|
If InStr(ServerResponse, "Sie wurden erfolgreich angemeldet.") Then
MessageBox.Show("Login OK")
Else
MessageBox.Show("Login nicht OK")
End If
|
Das: „Sie wurden erfolgreich angemeldet.“ Nehme ich aus dem grund weil die nächste seite die nach dem einloggen kommt diese ist:
Euer Code ganz zum schluss sollte dann so aussehen:
|
Visual Basic Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
Imports System.IO, System.Net, System.Text
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim User = "igoe", Pwd = ""
Dim Request As HttpWebRequest = CType(WebRequest.Create("http://www.vb-community.eu/index.php?form=UserLogin"), HttpWebRequest)
Request.Method = "POST"
Request.ContentType = "application/x-www-form-urlencoded"
Dim Post As String = "loginUsername=" & User & "&loginPassword=" & Pwd & "&useCookies=1&url="
Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post)
Request.ContentLength = byteArray.Length
Dim DataStream As Stream = Request.GetRequestStream()
DataStream.Write(byteArray, 0, byteArray.Length)
DataStream.Close()
Dim Response As HttpWebResponse = Request.GetResponse()
DataStream = Response.GetResponseStream()
Dim reader As New StreamReader(DataStream)
Dim ServerResponse As String = reader.ReadToEnd()
reader.Close()
DataStream.Close()
Response.Close()
If InStr(ServerResponse, "Sie wurden erfolgreich angemeldet.") Then
MessageBox.Show("Login OK")
Else
MessageBox.Show("Login nicht OK")
End If
End Sub
End Class
|
Wenn ihr das Programm jetzt Startet dann bekommt ihr gesagt ob eure Daten richtig sind!
Ich hoffe ihr habt das Tutorial verstanden, und ich konnte euch alles gut übermitteln.
Wenn euch das Tutorial gefallen hat dann gebt mir dafür einfach ein thx!
Lg, igoe