![]() |
IdHTTP.Get Paketweise
Hi,
mit dem Befehl IdHTTP.Get(URL) kann man je bekanntlich eine Webseite auslesen. Jedoch wird die Webseite als ganzes ausgegeben, was bei großen Daten lange dauert. Ich möchte nun die Daten bereits haben wenn sie meinen Rechner erreichen, also in etwas so:
Delphi-Quellcode:
Wie ist so etwas möglich ?
while es_können_noch_daten_gelesen_werrden do begin
Paketinhalt := IdHTTP.LeseDaten; // Paketinhalt verarbeiten end; mfg, Björn |
Re: IdHTTP.Get Paketweise
Hmm? Was genau meinst du mit paketweise? Alles in gleichgroße Blöcke aufteilen, die rubnterladen und zusammenfügen, oder geht es nur darum, die daten gleich zu Speichern? Letzteres müsste mit einem Filestream eigentlich möglich sein. (Get ist ja mehrfach überladen)
Für die erste Varainte gibt könntest du mit idhttp.request.contentrangestart und idhttp.request.contentrangeend mehrere Packete herunterladen. Die Parameter erwarten jeweils den "Anfang des Pakets" und das "Ende des Pakets" in bytes. Die Gesamtdateigröße müsstest du über idhttp.response.contentlength nachdem du idhttp.head(url) aufgerufen hast erfahren können. Ich beschäftige mich gerade auch mit so etwas, weil ich einen kleinen Downloadmanager schreiben will. Leider funzt der nicht, vllt werde ich dazu auch noch mal nen Thread eröffnen. |
Re: IdHTTP.Get Paketweise
Nun ein Paket aus dem Internet erreicht meinen PC, nun wird dieses Paket von Indy irgentwo gespeichert bis alle Pakete des Seitenaufrufs eingetroffen sind. Danach werden alle Daten des Seitenaufrufs meinen Programm verfügbar gemacht.
Das will ich nicht. Ich möchte die ersten Daten schon benutzen wenn noch weitere eintreffen. Etwa so wie es Bei Flash Videos ist. idhttp.request.contentrangestart kommt für mich nicht in frage, da dies Weiteren Traffic erzeugt von allen Servern unterstüzt werden musss etc. mfg, Björn |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz