[gelöst] QHttp Download mit Anmeldung am Server
Verfasst: 22. Juni 2007 19:22
Hallo!
Ich will mit einem Programm Dateien vom Filehoster rapidshare.com über meinen Account herunterladen.
Direct downloads sind aktiviert, aber nur wenn ich eingeloggt bin, ansonsten wird nur die Downloadseite angezeigt.
In Download Managern funktioniert das über die Funktion "Anmeldung am Server" ganz normal.
Mit Qt funktioniert das irgendwie noch nicht:
Mit obigem Code wird nur die Download-HTML-Seite heruntergeladen.
Im Log des Downloadmanagers FlashGet, hab ich das gefunden:
"Authorization: Basic [ein Base64-codierter String]"
Ich hab versucht dieses Header-Element manuell zu setzen, aber leider mit dem selben Ergebnis. Ich hab aber auch eigentlich keine Ahnung davon:
Also, ich bin grad ratlos. V.A. weil das mit Downloadmanagern so problemlos klappt, sowas muss doch mit Qt zu implementieren sein...
Bin dankbar für jeden Ratschlag,
FaS
Ich will mit einem Programm Dateien vom Filehoster rapidshare.com über meinen Account herunterladen.
Direct downloads sind aktiviert, aber nur wenn ich eingeloggt bin, ansonsten wird nur die Downloadseite angezeigt.
In Download Managern funktioniert das über die Funktion "Anmeldung am Server" ganz normal.
Mit Qt funktioniert das irgendwie noch nicht:
Code: Alles auswählen
// m_http: QHttp* member variable
// url: QUrl-Instanz mit dem herunterzuladenen Link
// Einige Fehler-, Status- usw. -Slots sind verbunden..
m_http->setHost( url.host(), url.port() != -1 ? url.port() : 80 );
m_http->setUser( m_user, m_pass );
m_httpGetId = m_http->get( url.path(), m_file );
Im Log des Downloadmanagers FlashGet, hab ich das gefunden:
"Authorization: Basic [ein Base64-codierter String]"
Ich hab versucht dieses Header-Element manuell zu setzen, aber leider mit dem selben Ergebnis. Ich hab aber auch eigentlich keine Ahnung davon:
Code: Alles auswählen
// m_http: QHttp* member variable
// url: QUrl-Instanz mit dem herunterzuladenen Link
// Einige Fehler-, Status- usw. -Slots sind verbunden..
m_http->setHost( url.host(), url.port() != -1 ? url.port() : 80 );
QByteArray text;
text.append( m_user + ":" + m_pass );
text = text.toBase64();
text.insert( 0, "BASIC " );
QHttpRequestHeader header( "GET", url.path() );
//header.setValue( "Host", "rapidshare.com" );
header.setValue( "Authorization", text.data() );
header.setValue( "Pragma", "no-cache" );
header.setValue( "Cache-Control", "no-cache" );
header.setValue( "P3P", "CP=\"ALL DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa TELa OUR STP UNI NAV STA PRE\"" ); // Keine Ahnung was das ist, hab ich auch im FlashGet Log gefunden
m_httpGetId = m_http->request( header, 0, m_file );
Bin dankbar für jeden Ratschlag,
FaS