Hi, kleine Frage...
Ich versuch gerade ein "mini-Browser" zu erstellen der sich direkt bei Joomla einloggt, leider scheitere ich am Post Request.
Kann mir jemand sagen oder am besten Beispielcode zeigen wie man ein Post Request für solch einen Login schreibt und QWebView übergibt?
Ich weiss das man anscheinend QNetworkReplay oder QNetworkRequest benötigt, aber kein Plan wie man den Code umsetzt und Beispielcode finde ich nicht -.-'
Kann jemand helfen?
Post Request mittels QWebKit?
@AngelusNoctis: Mit "QWebView.load()" kannst Du beliebige Requests absetzen. Für POST-Requests muss als zweiter Parameter "QNetworkAccessManager.PostOperation" angegeben werden. Das erste Argument enthält den Request selbst, inklusive der URL, an welche der POST-Request geschickt werden soll. Die Daten des POST-Requests – bei einem Login typischerweise Benutzername und Passwort – sind im dritten Argument zu übergeben. Das genaue Format dieser Daten ist von der Webanwendung abhängig, Du musst also beobachten, wie ein normaler Login bei Joomla abläuft.
Edit: Im Übrigen findet man im Internet durchaus Verweise auf entsprechenden Beispiel-Quelltext.
Edit: Im Übrigen findet man im Internet durchaus Verweise auf entsprechenden Beispiel-Quelltext.
-
- User
- Beiträge: 92
- Registriert: Sonntag 16. Dezember 2007, 20:03
Danke, guck ich mir gleich an.
-
- User
- Beiträge: 92
- Registriert: Sonntag 16. Dezember 2007, 20:03
Hi, jetzt hab ich ein kleines Problem mit den Cookies zumindest denke ich es sind die Cookies...
Sobald ich nach erfolgreichem Login einen Link anklicke haut es mich raus.
Gibts ne möglichkeit das aktuelle Cookie auszulesen oder irgendwie zu übergeben?
Als Beispiel:
Sobald ich nach erfolgreichem Login einen Link anklicke haut es mich raus.
Gibts ne möglichkeit das aktuelle Cookie auszulesen oder irgendwie zu übergeben?
Als Beispiel:
Code: Alles auswählen
# Auth-Request
self.request = QtNetwork.QNetworkRequest(QtCore.QUrl(self.host))
self.request.setRawHeader('Host', 'www.myhp.ch')
#self.request.setRawHeader('User-Agent', 'Demo Browser')
self.request.setRawHeader('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
self.request.setRawHeader('Accept-Language', 'en-us,en;q=0.5')
self.request.setRawHeader('Accept-Encoding', 'gzip, deflate')
self.request.setRawHeader('Proxy-Connection', 'keep-alive')
self.request.setRawHeader('Referer', 'http://www.myhp.ch/')
self.request.setRawHeader('Cookie', 'fa3653750d089dfb6f28445cbc4ce751=6810e7a8cbf74c233ea6f88304605867') ##Funktioniert solang ich das für den Login übergebe!
self.request.setRawHeader('Content-Type', 'application/x-www-form-urlencoded')
form = '&username=MyUser&passwd=MyPass&op2=login&lang=german&force_session=1&return=B%3AaHR0cDovL3d3dy5jaGF0LmNoLw%3D%3D&message=0&loginfrom=loginmodule&cbsecuritym3=cbm_59527f71_004f178a_2bdf2b40a30d85d9a3e6b5b0b9f70059&j9054dfedcb85a55faaacf227386de337=1&Submit=Login
self.webView.load(self.request, QtNetwork.QNetworkAccessManager.PostOperation, form)
Zuletzt geändert von Anonymous am Montag 9. April 2012, 21:15, insgesamt 2-mal geändert.
@AngelusNoctis: Hau zurück… oder gib uns eine vernünftige Fehlermeldung Bevor Du fehlenden Cookies die Schuld gibst, prüfe auch erst einmal mit wireshark, ob die Cookie-Header tatsächlich fehlen…