Download einer Datei mit TIdHTTP
-
Hallo Mitmenschen.
Ich habe folgendes Problem. Wenn ich mit dieser Komponente eine bestimmte Datei herunterladen möchte, kommt der HTML Fehlercode 302 (Datei wurde bewegt). Wenn ich die URL in einen Browser eingebe, kommt kein Fehler. Der aktuelle Speicherort der bewegten Datei sollte laut HTML Dokumentation irgendwie mitübermittelt werden. Nur wie lese ich diesen aus.
Die spezielle Datei:
http://www.mod-x.co.uk/G!%23%23.phpDer Code:
TFileStream *myStream = new TFileStream(LabeledEdit2->Text, fmCreate); IdHTTP1->Get(LabeledEdit1->Text, myStream); delete myStream;Zitat de.selfhtml.org
302 Moved Temporarily Die angeforderten Daten wurden vorübergehend zu einem anderen URI verschoben. In der Statusmeldung wird angegeben, unter welcher Adresse sich die Daten derzeit befinden. Ein Web-Browser, der diese Antwort erhält, kann beispielsweise gleich die temporär gültige Adresse anfordern.
PS: bei anderen Dateien funktioniert es perfekt.
Danke schon mal im Voraus
Gruss
-
TIdHTTP::Response::Location
-
Nein, das funktioniert leider nicht(Connection closed gracefully)
Ich habe in der Hilfe bei Location nachgesehen:
Location is used for HTTP redirects to identify the new location of the document.Eigentlich genau das was ich bräuchte. Aber es geht nicht. Hat jemand eine andere Idee?
TFileStream *myStream = new TFileStream(LabeledEdit2->Text, fmCreate); try { IdHTTP1->Get(LabeledEdit1->Text, myStream); } catch(...) { IdHTTP1->Get(IdHTTP1->Response->Location, myStream); } delete myStream;Trotzdem Danke. Gruss
-
Sieh dir doch erstmal an, was in Location drin steht ...
-
habe ich. In Location ist wieder die index.html und ein Übergabeparameter mit false als Wert.
Könnte es daran liegen, das die PHPdatei URLEncoded ist? Decoded wäre G!##.php
Diese Datei ist aber nicht vorhanden.???
-
Dort gibt es einen Parameter (Redirect), der ist aud true zu setzen. Dann werden die Redirections automatisch abgehandelt.
-
Rostfrei[] schrieb:
In Location ist wieder die index.html und ein Übergabeparameter mit false als Wert.
Kann ich nicht nachvollziehen. Bei mir steht dort 'main.php?bad=yes', so wie's auch im Browser erscheint.