Diskussion: HttpWebRequest Tutorial (Für anfänger) im Forum Programmierung, in der Kategorie Tutorials; Anzeige Hi, hier mal ein Tutorial aus meinem Board, es wurde vom Benutzer "Igoe" geschrieben Heute möchte ich euch zeigen ...
![]() |
| | #1 (permalink) |
| Anzeige Hi, hier mal ein Tutorial aus meinem Board, es wurde vom Benutzer "Igoe" geschrieben Heute möchte ich euch zeigen wie man sich auf einer Seite mit der HttpWebRequest Klasse einloggt (in diesem fall www.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 [vb]Imports System.IO, System.Net, System.Text[/vb] Jetzt Deklarieren wir erstmal 2 Variablen, nämlich User & pwd. (im Form_Load) Code: Dim User = "", Pwd = "" Code: Dim Request As HttpWebRequest = CType(WebRequest.Create(""), HttpWebRequest) Code: Dim Request As HttpWebRequest = CType(WebRequest.Create("http://www.vb-community.eu/index.php?form=UserLogin"), HttpWebRequest) 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: Code: Request.Method = "POST" Request.ContentType = "application/x-www-form-urlencoded" Nun fügen wir noch mal einen dicken Blog ein. Code: 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() 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: Code: loginUsername=MEINBENUTZERNAME&loginPassword=MEINPASSWORT&useCookies=1&url= Diesen Code ändern wir jetzt so dass wir nachher die Account Daten in der Variable User & pwd bestimmen können. Nämlich in: Code: loginUsername=" & User & "&loginPassword=" & Pwd & "&useCookies=1&url== Code: Dim Post As String = "loginUsername=" & User & "&loginPassword=" & Pwd & "&useCookies=1&url=" Code: 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() Code: 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() 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: Code: If InStr(ServerResponse, "Sie wurden erfolgreich angemeldet.") Then
MessageBox.Show("Login OK")
Else
MessageBox.Show("Login nicht OK")
End If Euer Code ganz zum schluss sollte dann so aussehen: Code: 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 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! Link zum Original Benutzerprofil Gruß Icemanns Geändert von icemanns (28.04.11 um 16:00 Uhr) | |
| | |
| | #2 (permalink) |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | Ich schalte es mal frei, allerdings wären etwas mehr Infos zum Ersteller gut (Link zum Originalbeitrag, Email/Nick oder was der Ersteller gerne bei "Fremdposts" haben möchte
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |