ICQ- HTTPWebRequest

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von n1234n.

    ICQ- HTTPWebRequest

    Guten Tag....
    Ich muss zugeben ich habe diese Frage zunächst in 2 anderen Foren gestellt, da ich einfach mal ein anderes Forum ausprobieren wollte. Nun da ich nach längerer Zeit dennoch nicht zu einem Ergebniss kam, lag nicht unbedingt am Forum, kann auch an mit liegen :D, stelle ich die Frage nun hier auch nochmal.

    Und zwar versuche ich seit einiger Zeit mich per HttpWebRequest auf ICQ einzuloggen.
    Allerdings gelingt mir dies nicht, und ich bin momentan ratlos.
    Hier ist mal mein momentaner Code:

    VB.NET-Quellcode

    1. Private Sub KeyAuslesen()
    2. Dim myReq As HttpWebRequest = WebRequest.Create("https://www.icq.com/karma/login_page.php")
    3. Dim httpResponse As HttpWebResponse = myReq.GetResponse()
    4. Dim reader As StreamReader = New StreamReader(httpResponse.GetResponseStream)
    5. Dim httpContent As String = reader.ReadToEnd
    6. Dim ipRegEx As New Regex("\<input type=\""hidden\"" name=\""icq_ln\"" value=\""(?<read>(.*))\""\>")
    7. Dim Wert As String = ipRegEx.Match(httpContent).Groups("read").ToString()
    8. myReq.CookieContainer = Containa
    9. myReq.ContentType = "application/x-www-form-urlencoded"
    10. ICQIN = Wert
    11. End Sub
    12. Private Sub Login()
    13. Dim myReq As HttpWebRequest = WebRequest.Create("https://www.icq.com/karma/login_page.php")
    14. Dim parameterRequest As String = "dest=http%3A%2F%2Fwww.icq.com&service=30&icq_ln=" & ICQIN & "&uin_email=Icqnummer&password=Passwort"
    15. Dim parameter() As Byte = Encoding.UTF8.GetBytes(parameterRequest)
    16. myReq.Method = "POST"
    17. myReq.CookieContainer = Containa
    18. myReq.Headers("useragent") = "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8"
    19. myReq.ContentType = "application/x-www-form-urlencoded"
    20. myReq.ContentLength = parameter.Length
    21. Dim requestStream As Stream = myReq.GetRequestStream
    22. requestStream.Write(parameter, 0, parameter.Length)
    23. requestStream.Close()
    24. Dim response As HttpWebResponse = CType(myReq.GetResponse(), HttpWebResponse)
    25. Dim responseStream As Stream = response.GetResponseStream
    26. Dim streamReader As StreamReader = New StreamReader(responseStream)
    27. Me.Text = (streamReader.ReadToEnd)
    28. My.Computer.FileSystem.WriteAllText("C:\Users\...\Desktop\Log.html", Me.Text, False)
    29. streamReader.Close()
    30. responseStream.Close()
    31. End Sub


    Es scheint beim "Post" welcher an die ICQ Seite gesendet wird zu hapern, da nach der Log-Datei lediglich die ICQ-Nummer eingetragen ist.
    Vielleicht wäre jemand so freundlich sich mal meinen Code anzuschauen, um mir eventuell weiterzuhelfen.


    Mit freundlichen Grüßen.
    Was ist wenn du statt "myReq.CookieContainer = Containa" das: "Containa = myReq.CookieContainer" verwendest? (nur im KeyAuslesen-Sub, falls dieser als 1. kommen sollte)

    Außerdem solltest du den Referrer im 2. Sub auf "https://www.icq.com/karma/login_page.php" stellen.

    Der HTTPWebrequest besitzt eine Useragent-Property. Für andere, fehlerfreie Operationen am Header kannst du die Streings aus "System.Net.HttpRequestHeader" nehmen.

    Außerdem:
    Schalte mal Option Strict an.
    Von meinem iPhone gesendet
    Danke für die Antwort, hatte die Hoffnung schon aufgegeben, dass mir jemand weiterhelfen kann :D
    Dennoch hat dies auch nichts weiter gebracht. Ich habe auch nochmal den Quelltext von ICQ begutachtet, und dort hat sich auch nichts geändert.