Httpwebrequest & Cookies ;(

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von pc-werkstatt.

    Httpwebrequest & Cookies ;(

    Hallo liebes Forum,

    ich komme absolut nicht mit den Cookies bei HttpWebRequest klar. Kann sie mir bitte einer erklären, wie ich welche setze, und wie ich sie dann an die nächste seite weitergeben kann? ;(

    Habe das hier gefunden:

    VB.NET-Quellcode

    1. Dim cc As New CookieContainer
    2. Dim _cookie As New Cookie(Name, value, Path, domain)
    3. cc.Add(Cookie)
    4. cc.Add(_cookie)
    5. req.CookieContainer = cc


    Mein Code ist:

    VB.NET-Quellcode

    1. Function Login(ByVal url As String, ByVal postdata As String) As Boolean
    2. Dim data() As Byte = System.Text.Encoding.ASCII.GetBytes(postdata)
    3. Dim req As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
    4. req.Method = "post"
    5. req.ContentType = Login_ContentType
    6. req.ContentLength = data.Length
    7. req.UserAgent = Login_UserAgent
    8. Dim dataStream As Stream = req.GetRequestStream()
    9. dataStream.Write(data, 0, data.Length)
    10. Dim res As HttpWebResponse = CType(req.GetResponse, HttpWebResponse)
    11. Dim str As New StreamReader(res.GetResponseStream)
    12. Quelltext = str.ReadToEnd
    13. Select Case Forum_Sprache
    14. Case "en"
    15. If InStr(Quelltext, Login_SuchString) Then
    16. Else : Login = False : State = False
    17. End If
    18. Case "de(du)"
    19. Case "de(sie)"
    20. End Select
    21. End Function


    Das einloggen klapt wunderbar, aber ich komm ja nur auf die Seite "Sie wurden erfolgreich eingeloggt.", wenn ich nach dem einloggen dann auf das Profil will ist der CVookie ja schon wieder weg, also wie kann ich ihn an die nächste seite weiter geben?

    VIELEN DANK! :)
    Liebe Grüße,
    C.O.D.E

    Testautomatisierung (TA):

    5%
    Du findest meinen Beitrag Hilfreich? :thumbup: Dann drück auf Hilfreich!
    Hi,

    ich persönlich arbeite direkt mit dem Header. Du kannst beim Login den Cookie im response abfragen.

    VB.NET-Quellcode

    1. Dim _cookie As String = res.Headers.Get("Set-Cookie")


    übergeben kannst du ihn im nächsten request mit

    VB.NET-Quellcode

    1. req.Headers.Add("Cookie", _cookie)

    VB.NET-Quellcode

    1. Public Function Login(ByVal url As String, ByVal postdata As String) As Boolean
    2. State = True
    3. Dim data() As Byte = System.Text.Encoding.ASCII.GetBytes(postdata)
    4. Dim req As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
    5. req.Method = "post"
    6. req.ContentType = Login_ContentType
    7. req.ContentLength = data.Length
    8. req.UserAgent = Login_UserAgent
    9. Dim dataStream As Stream = req.GetRequestStream()
    10. dataStream.Write(data, 0, data.Length)
    11. Dim res As HttpWebResponse = CType(req.GetResponse, HttpWebResponse)
    12. Dim str As New StreamReader(res.GetResponseStream)
    13. _cookie = res.Headers.Get("Set-Cookie")
    14. Quelltext = str.ReadToEnd
    15. MsgBox(Quelltext)
    16. 'Wenn man im FORUM eingeloggt ist dann geh auf das Profil
    17. If InStr(Quelltext, "You have successfully been logged in") Then
    18. TextBox1.Text = (get_sourcecode("http://localhost/upload/usercp.php"))
    19. Else : State = False
    20. End If
    21. End Function
    22. Function get_sourcecode(ByVal url As String) As String
    23. Dim req As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
    24. req.Headers.Add("Cookie", _cookie)
    25. Dim res As HttpWebResponse = CType(req.GetResponse, HttpWebResponse)
    26. Dim str As New StreamReader(res.GetResponseStream)
    27. Return str.ReadToEnd()
    28. End Function


    Aufrufen tu ich die Funktion so:

    VB.NET-Quellcode

    1. Login("http://localhost/upload/member.php", "action=do_login&url=http://localhost/upload/index.php&quick_login=1&quick_username=igoe&quick_password=PASSWORT&submit=Login&quick_remember=yes")


    Dann bekomme ich immer:

    Quellcode

    1. You are either not logged in or do not have permission to view this page. This could be because one of the following reasons:


    Da aber im Quelltext auch z.B: der Register Button zu sehen ist, weiß ich das er wieder ausgeloggt wird.

    DANKE!
    Liebe Grüße,
    C.O.D.E

    Testautomatisierung (TA):

    5%
    Du findest meinen Beitrag Hilfreich? :thumbup: Dann drück auf Hilfreich!

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „pc-werkstatt“ ()