Frage

Prüfen Sie, ob es möglich ist, die Datei mit Delphi herunterzuladen

Guten Tag ...Ich beginne in Delphi und erstelle ein Programm zum Herunterladen von Dateien über HTTP ...

Ich benutze:

IdHTTP.Get (URL FileDownload)

Aber mein Programm generiert eine Fehlermeldung, wenn es die Datei nicht herunterladen kann ...

Ex: http://exemplo.com/ -> Erzeugt einen Fehler

Ex: http://exemplo.com/meudownload.ts -> Ermöglicht den Download

Ich möchte diesen Fehler beheben. Wie kann ich überprüfen, ob der Download der Datei möglich ist oder ob sie gesenkt wird ...

ich benutzte EIdHTTPProtocolExeption prüft aber nur HTML-Fehler wie:404, 300 ...und ist es nicht so, dass ich ...

Ich würde gerne sehen, ob Sie die Datei herunterladen können oder ob sie heruntergeladen wird ...

Wenn das passiert, werde ich eine andere Datei herunterladen:

donw_1.ts, down_2.TS, down_3.TS ...Wenn er dann eine Archivierung erhält, die nicht heruntergeladen werden kann, habe ich die Antwort, die Schleife abzubrechen ...

War es hilfreich?

Lösung 3

Das Problem kann nicht gelöst werden, indem Sie einen Scan-Kopf ausführen ... und verwaltet, das Problem mit dem HTTP 404-Fehler zu lösengelöst ....

Andere Tipps

Fangen EIdHTTPProtocolException ist das, was Sie tun sollten.Denken Sie daran, dass Indy speziell dafür konzipiert ist, Ausnahmen für die Fehlerberichterstattung zu nutzen. EIdHTTPProtocolException ich zeige TIdHTTP meldet HTTP-spezifische Fehler vom Server (jede andere Art von Ausnahme bedeutet, dass entweder der Socket oder die RTL ein Problem hatte und die HTTP-Anfrage wiederholt werden kann).Die bloße Tatsache, dass Sie diese Ausnahme erhalten, bedeutet, dass der Server die Datei nicht wie angefordert liefern konnte. Daher sollten Sie es normalerweise nicht erneut versuchen, es sei denn, Sie wissen, dass es sich um einen behebbaren Fehler handelt.Überprüfung der Ausnahme ErrorCode ist optional, aber verfügbar, wenn Sie wirklich zwischen bestimmten Fehlern unterscheiden müssen.

Wenn Sie nur sehen möchten, ob auf dem Server eine Datei vorhanden ist, verwenden Sie tidhttp.head.Diese Funktion lädt nur die Header herunter, die von dem äquivalenten Anruf zurückgegeben worden wären, jedoch nicht die Daten selbst.Sie können dann die Header überprüfen, um zu sehen, ob die Datei vorhanden ist, und entscheiden Sie, was als Nächstes zu tun ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top