Seite 1 von 1
Einloggen auf einer Webseite und Download einer Excel-Datei
Verfasst: 18. Mai 2010 22:08
von Djon
Hallo!
Ich habe folgendes vor. Ich möchte mich auf einer Seite einloggen, einen Link betätigen, der eine Excel-Datei generiert und diese dann herunterladen. Ich bin jetzt soweit, dass ich mit Hilfe der Komponente QWebView das Einloggen und die Generierung der Excel-Datei erfolgreich implementiert habe. Jetzt bleibt nur das Herunterladen. Die Kommunikation mit der Webseite ist Session-basierend. Ich habe jetzt erfolgreich die entsprechende Session-ID aus QWebView extrahieren können. Um die Datei zu laden, muss eine Verbindung zu dem entsprechenden "ExcelHandler.ashx" aufgebaut werden. Wie mache ich das?
Vielen Dank im Voraus!
Mfg Djon
Verfasst: 25. Mai 2010 22:52
von Djon
Hallo!
Ich habe jetzt nochmal die Anfrage des Browsers mitgeschnitten, die sieht folgendermaßen aus:
Code: Alles auswählen
GET /Restricted/ExcelHandler.ashx HTTP/1.1
Host: www.voipinfocenter.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1064 Safari/532.5
Referer: https://www.voipinfocenter.com/Restricted/ExcelHandler.aspx?ContentType=CallList
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate,sdch
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: __utmz=32114489.1273767011.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); ASP.NET_SessionId=xxxxxxxxxxxxxxxxx; ClientCache=StyleHash=6864450200472292482&ValidEmailAddress=True; RESELLER.ASPXAUTH=xxxxxxxxxxxxxxxxxxxxxx; __utma=32114489.1533993703.1273767011.1274027107.1274027530.5; __utmc=32114489; __utmb=32114489.2.10.1274027530
Kann man jetzt diese Information an die entsprechende Qt-Klasse für den Download übergeben?
Mfg Djon
Verfasst: 1. Juni 2010 15:28
von Troll.Soft
Wenn Du auf der Seite Schreibrechte hast (offensichtlich ja) und den Namen kennst (was wahrscheinlich ist) kannst Du die Datei einfach mit QFtp() runterladen.
tschüß
Troll.Soft
Verfasst: 1. Juni 2010 15:51
von franzf
Troll.Soft hat geschrieben:Wenn Du auf der Seite Schreibrechte hast (offensichtlich ja) und den Namen kennst (was wahrscheinlich ist) kannst Du die Datei einfach mit QFtp() runterladen.
Definitiv nicht. Mit Ftp mussdie fertige Datei schon im Dateisystem liegen. Es hört sich hier aber so an, als wolle er eine per Webserver (.asp, also ein MS-Server) die Datei generieren lassen. Außerdem sagt der Mitschnitt "HTTP", und die Daten werden per GET geschickt.
Zum connecten soltest du aber nicht QWebView nehmen. Das Ding ist zur Anzeige gedacht, also nicht zum Anzeigelosen Download. Dafür solltest du dir QNetworkAccessManager + QNetworkReply anschauen.
Verfasst: 1. Juni 2010 16:33
von Troll.Soft
franzf hat geschrieben:Mit Ftp mussdie fertige Datei schon im Dateisystem liegen.
selbstverständlich muß sie das.
Meine Internetscripte (Perl) hatten auch nie ein Problem damit, eine Datei im Internetlinux anzulegen.
Ist möglicherweise nicht das, was er will, aber ansonsten ist QFtp() nun mal sehr einfach.
tschüß
Troll.Soft
Verfasst: 1. Juni 2010 16:46
von upsala
Er hat nur Zugriff über Http und somit ist der Hinweis auf QFtp schlichtweg falsch.
Mal davon abgesehen, was ist 'Internetlinux'?
Verfasst: 1. Juni 2010 17:01
von franzf
upsala hat geschrieben:Mal davon abgesehen, was ist 'Internetlinux'?
Ich nehme an er traut sich mit seinem Windows nicht ins Internet und hat deshalb einen Linuxrechner für Brows0rn und Mail0rn.
Verfasst: 1. Juni 2010 18:12
von Djon
Hallo!
Der Vorschlage mit QNetworkAccessManager + QNetworkReply ist in meinem Fall leider bisschen kompliziert. Bevor ich die entsprechende Datei runterladen kann, muss die erst noch erstellt werden. Das Erstellen wird durch das Betätigen entsprechende Links, die wiederrum mit irgendwelchen Javascript-Funktionen verbunden sind. Wenn ich das jetzt per Hand alles realisieren sollte, würde es sehr viel Zeit in Anspruch nehmen. Und so erspare ich mir viel Zeit durch den Umweg über die QWebView. Die wird bei mir nur angelegt, aber nicht angezeigt. Klappt bis jetzt bestens!
Mfg Djon