Ask.Fm Login klappt nicht.

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von dotNetCoding.

    Ask.Fm Login klappt nicht.

    Hallo liebe .Net Programmierer.... :)
    Ich melde mich mal wieder mit einer meiner Probleme bei euch.
    Wie auch immer... ich versuche seit ugf. 2 Stunen ein auf HttpWebRequest basiertes "http://www.ask.fm/" login zu programmieren.
    Jedoch klappt irendwie garnichts! :cursing:
    Hier ist mal mein SourceCode den ich bisjetzt geschrieben habe.....

    Button.-Click Event

    VB.NET-Quellcode

    1. Dim Http As New HttpClass
    2. Dim Source As String = String.Empty
    3. Source = Http.send_request("http://www.ask.fm/")
    4. Dim Token As String = System.Text.RegularExpressions.Regex.Match(Source, " var AUTH_TOKEN = ""(?<id>.*?)"";").Groups("id").Value.ToString
    5. Token = Http.URLEncode(Token)
    6. Source = Http.send_request("http://www.ask.fm/session/", "authenticity_token=" & Token & "&login=" & "USERNAME" & "&password=" & "PASSWORD" & "&follow=&like=&back=&authenticity_token=" & Token, "http://www.ask.fm/")


    Http.-Klasse

    VB.NET-Quellcode

    1. Public Class HttpClass
    2. Dim request As HttpWebRequest
    3. Dim response As HttpWebResponse
    4. Dim CookieCon As New CookieContainer()
    5. Public Function send_request(ByVal url As String, Optional ByVal post As String = Nothing, Optional ByVal ref As String = Nothing) As String
    6. Try
    7. request = CType(HttpWebRequest.Create(url), HttpWebRequest)
    8. request.AllowAutoRedirect = True
    9. request.KeepAlive = True
    10. request.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20100101 Firefox/15.0"
    11. request.CookieContainer = CookieCon
    12. request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"
    13. request.Method = "GET"
    14. request.Referer = ref
    15. If post <> Nothing Then
    16. request.Method = "POST"
    17. Dim bArray() As Byte = System.Text.Encoding.Default.GetBytes(post)
    18. request.ContentLength = bArray.Length
    19. Dim dStream As Stream = request.GetRequestStream
    20. dStream.Write(bArray, 0, bArray.Length)
    21. dStream.Close()
    22. End If
    23. response = CType(request.GetResponse, HttpWebResponse)
    24. Dim reader As New IO.StreamReader(response.GetResponseStream)
    25. Dim source As String = reader.ReadToEnd
    26. Return source
    27. Catch ex As Exception
    28. Return ex.Message.ToString
    29. End Try
    30. End Function
    31. Public Function URLEncode(ByVal StringToEncode As String, Optional ByVal _
    32. UsePlusRatherThanHexForSpace As Boolean = False) As String
    33. Dim TempAns As String = ""
    34. Dim CurChr As Integer
    35. CurChr = 1
    36. Do Until CurChr - 1 = Len(StringToEncode)
    37. Select Case Asc(Mid$(StringToEncode, CurChr, 1))
    38. Case 48 To 57, 65 To 90, 97 To 122
    39. TempAns = TempAns & Mid$(StringToEncode, CurChr, 1)
    40. Case 32
    41. If UsePlusRatherThanHexForSpace = True Then
    42. TempAns = TempAns & "+"
    43. Else
    44. TempAns = TempAns & "%" & Hex(32)
    45. End If
    46. Case Else
    47. TempAns = TempAns & "%" & Hex(Asc(Mid$(StringToEncode, _
    48. CurChr, 1)))
    49. End Select
    50. CurChr = CurChr + 1
    51. Loop
    52. URLEncode = TempAns
    53. End Function
    54. End Class


    Jedoch bekomme ich beim ausprobieren entweder einen "404" NotFound oder einfach wieder die LoginPage zurück... aber passieren tut rein garnichts!
    evtl. weiß ja jemand von euch woran das liegt...

    ach ja hier noch der HttpLiveHeader (Anhang)
    Dateien
    • header.txt

      (20,02 kB, 698 mal heruntergeladen, zuletzt: )
    erstens:

    authenticity_token=19AnNmsfR2jd7%2F28Zcisz1K%2BfZ82FmmyuctbfUDmbdw%3D&login=godmode&password=test%2B&follow=&like=&back=&authenticity_token=19AnNmsfR2jd7%2F28Zcisz1K%2BfZ82FmmyuctbfUDmbdw%3D

    im post.
    zweitens:

    Cookie: mobile_view=false; country_id=43; country_code=DE; language_id=14; _ask.fm_session=BAh7CDoQb2xkX2dldF91cmwiBi86EF9jc3JmX3Rva2VuIjExOUFuTm1zZlIyamQ3LzI4WmNpc3oxSytmWjgyRm1teXVjdGJmVURtYmR3PToPc2Vzc2lvbl9pZCIlYmZlZGE3ZjEwODQ4ZDViMDFjM2E1M2EyMjEyY2M2MzI%3D--0593f37a7da3694d7ba3e6ef21d829c937569bb6; __utma=71640835.867028986.1346961572.1346961572.1346961572.1; __utmb=71640835.1.10.1346961572; __utmc=71640835; __utmz=71640835.1346961572.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)


    d.h. du brauchst allem anschein nach eine ask.fm session (javascript / first visit und so).
    deswegen brauchst du n cookie container, rufst einmal login page auf (für den session cookie) und loggst dich dann (mit diesem cookie, dem authenticity_token, pw und password) ein.

    das wars :D
    & nein ich kenne kein CAPS!
    Ich rufe die LoginPage doch zuerst auf, um mir das Auth-token zu holen. müsste das "SessionCookie" dort nicht gesetzt werden? Ich benutze doch dann den selben CookieContainer beim Login!?
    Ich kapier einfach nicht was ich falsch mache :(

    habe das ganze jetzt mal mit "http://www.ask.fm/login" probiert.... geht aber immer noch nicht.. selber fehler.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „dotNetCoding“ ()