Einloggen auf einer Webseite und Download einer Excel-Datei

Alles rund um die Programmierung mit Qt
Antworten
Djon
Beiträge: 41
Registriert: 9. September 2005 07:46
Wohnort: Braunschweig
Kontaktdaten:

Einloggen auf einer Webseite und Download einer Excel-Datei

Beitrag 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
Djon
Beiträge: 41
Registriert: 9. September 2005 07:46
Wohnort: Braunschweig
Kontaktdaten:

Beitrag 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
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Beitrag 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
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag 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.
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Er hat nur Zugriff über Http und somit ist der Hinweis auf QFtp schlichtweg falsch.

Mal davon abgesehen, was ist 'Internetlinux'?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag 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.
Djon
Beiträge: 41
Registriert: 9. September 2005 07:46
Wohnort: Braunschweig
Kontaktdaten:

Beitrag 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
Antworten