Ich habe eine Android-App erstellt, die sich auf einer Website anmeldet und kratzt. Leider hatte ich Probleme mit JSoup und persistierenden Session-Cookies.Session-Cookie nicht persistent mit JSoup
Jedes Mal, wenn ich versuche, eine POST-Anforderung zu machen, wird die Website darüber beschweren, dass die Sitzung abgelaufen ist. Ich habe die Ursache des Problems auf dem JSESSIONID
-Cookie isoliert (seit das Löschen in einem Browser beim Versuch, sich einzuloggen, das gleiche Ergebnis ergibt). Auch wenn ich alle vorherigen Cookies mit der .cookies()
-Methode einschließe, wird die Website dennoch darüber klagen, dass die Sitzung abgelaufen ist.
Ich frage mich, ob ich irgendwelche offensichtlichen Fehler mache, dass mein app davon abhalten, eine Sitzung ordnungsgemäß aufrechterhalten wird.
Der relevante Teil meines Codes so weit (Anmerkung: Ich verwende Kotlin für dieses Projekt):
val url = "omitted here"
val username = "user"
val password = "hunter2"
val initial = Jsoup.connect(url)
.method(Connection.Method.GET).execute()
val cookies = initial.cookies()
val login = Jsoup.connect(url)
.userAgent("Mozilla")
.data("login_name", username)
.data("password", password)
.cookies(cookies)
.post()
Jede Hilfe wäre sehr dankbar!
Basierend auf Kommentaren ist es wahrscheinlich kein Kotlin-Problem und stattdessen gibt die Seite keine Cookies vom Server zurück, sondern später per JavaScript. Deaktivieren Sie JavaScript in Ihrem Webbrowser und prüfen Sie, ob Sie im Webbrowser noch ein Cookie erhalten. Ich glaube nicht, dass wir mehr tun könnten, ohne die Seite zu kennen, auf die Sie zugreifen möchten. Aber dann würden wir Ihre Seite für Sie debuggen, anstatt diese Frage zu beantworten. –