HttpWebRequest Seiten Login

  • VB.NET
  • .NET (FX) 4.0

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    HttpWebRequest Seiten Login

    Hi mein aller neustest Problem


    Ich habe einen HttpWebRequest Geschrieben um mich per click auf einer Seite ein zu loggen
    Zuvor habe ich es auf einer anderen seite mit einer abfrage probiert und dies funktionierte aber auf der aktuellen seite bzw 2 getesteten geht garnix

    Hab ich ein fehler gemacht oder muss ich auf bestimmten seiten bestimmte sachen beachten.

    Zusätzlich würde ich die durchfürung gerne auf ein einen Externen browser auslegen also das dann z.b Firefox oder standart browser geöffnet werden und der loginprozess durchgeführt wird



    Ich habe einen testuser erstellt das der helfende nicht Extra arbeit hat


    Liveheader Ausgabe

    C#-Quellcode

    1. http://spareule.de/login.php
    2. POST /login.php HTTP/1.1
    3. Host: spareule.de
    4. User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
    5. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    6. Accept-Language: de,en-US;q=0.7,en;q=0.3
    7. Accept-Encoding: gzip, deflate
    8. Referer: http://spareule.de/login.php
    9. Cookie: PHPSESSID=fujit9j9gft0sb6s9ctq4bfs04
    10. Connection: keep-alive
    11. Upgrade-Insecure-Requests: 1
    12. Content-Type: application/x-www-form-urlencoded
    13. Content-Length: 41
    14. loginUser=Testuser14&loginPass=testuser14
    15. HTTP/1.1 302 Found
    16. Date: Fri, 14 Apr 2017 21:40:44 GMT
    17. Server: Apache/2.2.31 (Unix)
    18. X-Powered-By: PHP/7.0.16
    19. Expires: Thu, 19 Nov 1981 08:52:00 GMT
    20. Cache-Control: no-store, no-cache, must-revalidate
    21. Pragma: no-cache
    22. Location: chat.php
    23. Keep-Alive: timeout=3, max=100
    24. Connection: Keep-Alive


    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. Dim User = "Testuser14"
    3. Dim Pws = "testuser14"
    4. Dim Request As HttpWebRequest = CType(WebRequest.Create("http://www.spareule.de/login.php"), HttpWebRequest)
    5. Request.Method = "POST"
    6. Request.ContentType = "application/x-www-form-urlencoded"
    7. Dim Post As String = "loginUser=" & User & "loginPass=" & Pws
    8. Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post)
    9. Request.ContentLength = byteArray.Length
    10. Dim DataStream As Stream = Request.GetRequestStream()
    11. DataStream.Write(byteArray, 0, byteArray.Length)
    12. DataStream.Close()
    13. Dim Response As HttpWebResponse = Request.GetResponse()
    14. DataStream = Response.GetResponseStream()
    15. Dim reader As New StreamReader(DataStream)
    16. Dim ServerResponse As String = reader.ReadToEnd()
    17. reader.Close()
    18. DataStream.Close()
    19. Response.Close()
    20. TextBox1.Text = ServerResponse
    21. If InStr(ServerResponse, "Guthaben") Then
    22. MessageBox.Show("Login OK")
    23. Else
    24. MessageBox.Show("Login nicht OK")
    25. End If
    26. End Sub


    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Da ist ein fehler stimmt leider ist die seite grade offline aber auch auf folgender seite komme ich auch nicht rein

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. Dim User = "Geheim"
    3. Dim Pws = "Geheim"
    4. Dim Request As HttpWebRequest = CType(WebRequest.Create("http://www.cash-king.de"), HttpWebRequest)
    5. Request.Method = "POST"
    6. Request.ContentType = "application/x-www-form-urlencoded"
    7. Dim Post As String = "benutzername=" & User & "&passwort=" & Pws & "&submit_x=100"
    8. Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post)
    9. Request.ContentLength = byteArray.Length
    10. Dim DataStream As Stream = Request.GetRequestStream()
    11. DataStream.Write(byteArray, 0, byteArray.Length)
    12. DataStream.Close()
    13. Dim Response As HttpWebResponse = Request.GetResponse()
    14. DataStream = Response.GetResponseStream()
    15. Dim reader As New StreamReader(DataStream)
    16. Dim ServerResponse As String = reader.ReadToEnd()
    17. reader.Close()
    18. DataStream.Close()
    19. Response.Close()
    20. TextBox1.Text = ServerResponse
    21. If InStr(ServerResponse, "Burningx2") Then
    22. MessageBox.Show("Login OK")
    23. Else
    24. MessageBox.Show("Login nicht OK")
    25. End If
    26. End Sub


    Liveheader
    benutzername=Geheim&passwort=Geheim&submit_x=100



    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „bigbase“ ()

    Schreib mal bei der stelle wo der Request Typ definiert wird mal post(Im Quellcode ist es auch klein geschrieben... Ein Versuch ist es wert) klein.

    VB.NET-Quellcode

    1. Request.Method = "post"


    Edit: Wenn das nicht funktioniert, schreib POST wider gross hin und nimm bei der Adresse mal das WWW raus

    Bei deinem anderen Problem kann ich dir leider nicht weiterhelfen.

    Aber darf ich dich fragen was du in etwa mit diesem Code vorhast?
    Erstens darf ich mich auf jeder seite einloggen welche ich will das hat mit verboten oder nicht verboten rein garnichts zu tun.

    Ich möchte einfach ein button den ich anklicke und dieser öffnet meinen browser und loggt mich auf besagter seite ein.
    Da es sich um über 15 Seiten handelt bei denen ich mich mehrfach täglich einloggen muss ist das die einfachste lösung wie du jetzt auf den nenner kommst das sowas verboten sein soll verstehe ich nicht.
    Auch dein unfreundliches verhalten verstehe ich nicht.

    Ein übermässiges Zitieren hat auch nicht stattgefunden du hast mich etwas gefragt darauf hin zittire ich dich in meiner antwort um dich darauf hi zu weisen das ich eine antwort geschrieben habe das ist so üblich in foren mein freund.

    Zusätzlich hast du dich als schlauberger in ein thema eingemischt mit dem du dich scheinbar überhaupt nicht auskennst.

    Überdenke doch bitte mal dein verhalten Danke
    Ich war nie unhöflich und hab mich dir gegenüber weithesgehend korrekt verhalten.

    Gut, muss zugeben kam jetzt oben vielleicht von mir ein wenig voreilig rüber, dennoch habe ich das Gefühl du hier irgend ein Klickbot zu programmieren ... Oder geht es hierbei nur um denn Login Prozess? Wenn ja würde ich mich dafür entschuldigen und hoffe wir können diesen kleinen Streit beiseite legen.

    Und doch ein übermässiges Zitieren hat stattgefunden in deinem vorherigen Kommentar stattgefunden. (Steht sogar in den Foren Regeln)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „gabriel-b“ ()

    Es geht hier rein um einen login prozess mehr nicht

    Ich versuche aktuell einen cookiecontainer um zu setzen vielciht geht der login dann


    Edit habe das ganze nun in einem Cookiecontainer umgebaut auf der ersten seite geht es nun auf der Zweiten nicht


    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. Dim User = "Testuser14"
    3. Dim Pws = "testuser14"
    4. Dim postData As String = "loginUser=" & User & "&loginPass=" & Pws
    5. Dim tempCookies As New CookieContainer
    6. Dim encoding As New UTF8Encoding
    7. Dim byteData As Byte() = encoding.GetBytes(postData)
    8. Dim postReq As HttpWebRequest = DirectCast(WebRequest.Create("http://www.spareule.de/login.php"), HttpWebRequest)
    9. postReq.Method = "POST"
    10. postReq.KeepAlive = True
    11. postReq.CookieContainer = tempCookies
    12. postReq.ContentType = "application/x-www-form-urlencoded"
    13. postReq.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0"
    14. postReq.ContentLength = byteData.Length
    15. Dim postreqstream As Stream = postReq.GetRequestStream()
    16. postreqstream.Write(byteData, 0, byteData.Length)
    17. postreqstream.Close()
    18. Dim postresponse As HttpWebResponse
    19. postresponse = DirectCast(postReq.GetResponse(), HttpWebResponse)
    20. tempCookies.Add(postresponse.Cookies)
    21. logincookie = tempCookies
    22. Dim postreqreader As New StreamReader(postresponse.GetResponseStream())
    23. Dim thepage As String = postreqreader.ReadToEnd
    24. RichTextBox1.Text = thepage
    25. If InStr(thepage, "Guthaben") Then
    26. MessageBox.Show("Login OK")
    27. Else
    28. MessageBox.Show("Login nicht OK")
    29. End If
    30. End Sub



    Aber die eigentliche Frage ist jetzt immer noch wie setze ich das auf einen Externen browser um

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „bigbase“ ()

    bigbase schrieb:

    wie setze ich das auf einen Externen browser um
    HttpWebRequest ist die Methode, die der Browser verwendet, um mit dem Webserver zu kommunizieren.
    Wenn du diese Methode verwendest, schreibst du quasi einen eigenen Browser.
    Ich wüsste nicht, wie du eine von dir angefangene Browser-Session an einen anderen Browser übergibst.
    Maximal kannst du mit etwas Glück deinen befüllten Cookie-Container an einen "echten" Browser übergeben.

    Wenn du den Startdialog eines Browsers automatisieren willst, um danach im Browser weiterzuarbeiten, solltest du die Automatisierungsmöglichkeiten des gewünschten Browsers verwenden.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --