Hallo,
Veruche derzeit mir HttpWebRequest etwas näher zu bringen. Wollte mal zum testen eine kleines Programm schreiben, was sich nur in epvp einloggt.
Der response wird in eine RichTextbox geladen und dann direkt in nem Webrowser angezeigt. Soweit so gut.
Wenn ich jetzt also das Programm starte und mich per Webrequest einlogge komme ich auch auf die Seite "Danke für deine Anmeldung. Wenn dein Browser dich nicht automatisch weiterleitet, dann klicke bitte hier...". Wenn mich der Browser dann aber weiterleitet, bin ich nicht eingeloggt.
Hab im Inetexplorer schon Cookies komplett zugelassen.
Dim cookieCon As CookieContainer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim postData As String = "vb_login_username=" & TextBox1.Text & "&vb_login_password=" & TextBox2.Text & "&cookieuser=1&s=&securitytoken=1445179991-b75a6c52d0a5a816f245a4253bd8c59bfcf13204&do=login&vb_login_md5password=&vb_login_md5password_utf="
Dim tempCookie As New CookieContainer
Dim encoding As New UTF8Encoding
Dim byteData As Byte() = encoding.GetBytes(postData)
Dim postReq As Net.HttpWebRequest = DirectCast(WebRequest.Create("http://www.elitepvpers.com/forum/login.php?do=login"), Net.HttpWebRequest)
postReq.Method = "POST"
postReq.KeepAlive = True
postReq.CookieContainer = tempCookie
postReq.ContentType = "application/x-www-form-urlencoded"
postReq.Referer = "http://www.elitepvpers.com/forum/login.php?do=login"
postReq.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0"
postReq.ContentLength = byteData.Length
Dim postreqstream As Stream = postReq.GetRequestStream()
postreqstream.Write(byteData, 0, byteData.Length)
postreqstream.Close()
Dim postresponse As HttpWebResponse
postresponse = DirectCast(postReq.GetResponse(), HttpWebResponse)
tempCookie.Add(postresponse.Cookies)
cookieCon = tempCookie
Dim postreqreader As New StreamReader(postresponse.GetResponseStream())
Dim thepage As String = postreqreader.ReadToEnd
RichTextBox1.Text = thepage
End Sub
Bitte steinigt mich nicht weil ich die Objekte nicht richtig benannt habe. Wird nicht zur Angewohnheit
Ich wollte durch den Webbrowser den Code aus der richtextbox anzeigen lassen. Um halt zu zeigen das ich mich wirklich eingeloggt habe. Und wegen dem Internetexplorer - ich habe gelesen das der Webbrowser als Objekt die Einstellungen des Internetexplorers uebernimmt.
Wenn nicht mit dem Webbrowser, wie kann ich dann prüfen ob ich mich erfolgreich per httpwebrequest eingeloggt habe?
Evtl. Per try Block?
Was genau ist mit initialisieren gemeint? Habe ja den Cookiecontainer per Dim deklariert.
So, ich glaube ich habe den Fehler gefunden: Es liegt an den Cookies!
Einloggen funktioniert super, nur wenn ich dann z.B. auf die Home Seite des Forums navigieren möchte, bin ich nichtmehr eingeloggt. Ich glaube die Cookies werden nicht gespeichert.
Nur ich verstehe nicht wieso. Der CookieContainer wird ja jedesmal übergeben
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
Dim cookieCon As New CookieContainer
Dim request As HttpWebRequest = DirectCast(HttpWebRequest.Create("https://forum.die-staemme.de/login.php?do=login"), HttpWebRequest)
Dim username As String = TextBox1.Text
Dim password As String = TextBox2.Text
Dim post As String = "vb_login_username=" & username & "&vb_login_password=" & password & "&vb_login_password_hint=Kennwort&s=&securitytoken=guest&do=login&vb_login_md5password=&vb_login_md5password_utf="
POST_________LOGIN_________________________
request.Method = "POST"
request.CookieContainer = cookieCon
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0"
request.ContentType = "application/x-www-form-urlencoded"
Dim byteArr() As Byte = Encoding.Default.GetBytes(post)
request.ContentLength = byteArr.Length
Dim dataStream As Stream = request.GetRequestStream()
dataStream.Write(byteArr, 0, byteArr.Length)
Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
Dim reader As New StreamReader(response.GetResponseStream())
Dim seitenQuelltext As String = reader.ReadToEnd()
If seitenQuelltext.Contains("Weiterleitung . . .") Then
Label3.Text = "Eingeloggt!"
seitenQuelltext = ""
Else
Label3.Text = "Fehler"
End If
GET____AUF HAUPTSEITTE_______________________________
request = DirectCast(HttpWebRequest.Create("https://forum.die-staemme.de/forum.php"), HttpWebRequest)
request.CookieContainer = cookieCon
request.KeepAlive = True
response = DirectCast(request.GetResponse(), HttpWebResponse)
reader = New StreamReader(response.GetResponseStream())
seitenQuelltext = reader.ReadToEnd()
If seitenQuelltext.Contains("Abmelden") Then
Label4.Text = "OK"
Else
Label4.Text = "Fehler"
End If
End Sub
das mit den cookies habe ich dir schon gesagt war das jetzt was neues das da der fehler ist?
Sorry aber ich komme grade echt nicht weiter.
Ich habe den CookieContainer oben definiert und und dann beim Login und der Weiterleitung auf die HomeSeite direkt übergeben
Ich stehe grade aufm Schlauch.
Ich wäre dir sehr dankbar wenn du den Fehler aufzeigen könntest
Du hast dem CookieContainer nie irgendwelche Cookies gegeben, ich würde mal vermuten das dein CookieContainer leer ist, und du desshalb bei der 2ten Anfrage nicht mehr eingeloggt bist.
Überprüf doch mal den Inhalt des CookieContainers mit dem Debugger.
Help with login httpwebrequest[VB] 07/11/2013 - .NET Languages - 3 Replies Hy all , have code for login httpwebrequest name and pass , but i need server to
please help me , thanks
sorry for my bad english
[S] VB.Net login etc Hilfe ( HTTPWebrequest ) 12/27/2012 - elite*gold Trading - 1 Replies Habe ein paar fragen - Probleme etc dazu
Wer mir per Teamviewer dies erledigt erhält 26 E*G :)
Die Person sollte sich mit Login's in Spiele auskennen ( Serverwahlt ) etc
Brwosergame Login per Httpwebrequest mit Threads 11/24/2012 - .NET Languages - 6 Replies Ich brauche hilfe:)
Ich habe schon alles mögliche versucht aber es geht einfach nciht:(
Ich möchte einen kleine Account checker schreiben für eine Brwosergame.
Mit Thread´s hier der Code
private void button1_Click(object sender, EventArgs e)
{
button1.Enabled = false;
HttpWebRequest Login 10/18/2012 - .NET Languages - 23 Replies Hi ihr,
ich habe mich nun mal an HttpWebRequest gewagt und versucht mich darüber auf Elitepvpers einzuloggen.
private void button1_Click(object sender, EventArgs e)
{
CookieContainer cookieCon = new CookieContainer();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www .elitepvpers.com/forum/login.php?do=login");
request.Method = "POST";
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:8.0)...