Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Datei in mehreren Teilen downloaden mit HTTP.get moeglich? (https://www.delphipraxis.net/58788-datei-mehreren-teilen-downloaden-mit-http-get-moeglich.html)

lucius 12. Dez 2005 18:17


Datei in mehreren Teilen downloaden mit HTTP.get moeglich?
 
Guten Abend, Leute

Momentan hole ich mir ueber HTTP.Get eine Datei von cirka 600kb aus dem Internet.
Meine Frage, ist es auch moeglich diesen Prozess mit HTTP.Get in mehreren Schritten zu machen damit die Datei Stueckweise vom Server geholt wird?
Denke das ist sicherer dan alles auf einmal zu holen.

MFG Lucius.

marabu 12. Dez 2005 18:57

Re: Datei in mehreren Teilen downloaden mit HTTP.get moeglic
 
Guten Abend, Lucius.

Hast du diesen thread schon gelesen? klick

Du musst die Daten aber nicht schon von vorne herein gestückelt abrufen. Es reicht doch auch, wenn du den fehlenden Teil abrufst, sobald es auf Grund einer Fehlersituation nötig wird.

Grüße vom marabu

lucius 12. Dez 2005 19:18

Re: Datei in mehreren Teilen downloaden mit HTTP.get moeglic
 
Guten Abend marabu, sieht gut aus der Thread.
Zitat:

Du musst die Daten aber nicht schon von vorne herein gestückelt abrufen. Es reicht doch auch, wenn du den fehlenden Teil abrufst, sobald es auf Grund einer Fehlersituation nötig wird.
Also wie du weisst hole ich mir die Daten ueber der SimpleRSS Komponente, die wiederum an der HTTP Komponente gekupelt ist.
Delphi-Quellcode:
SimpleRSS.IndyHTTP := idHTTP;
try
SimpleRSS.LoadFromHTTP('http://www.irgendwas/test.php');
except MessageDlg('Fehler! Keine Verbindung zum Server Server!'#13#10 + 'Neuer Versuch?', mtWarning, [mbOK], 0);
Kann ich dan trotsdem Request.ContentRangeStart und Request.ContentRangeEnd angeben?
Sagen wir ich moechte die Datei in 4 Teilen runterholen, wie soll das denn aussehen?
Delphi-Quellcode:
id HTTP.ContentRangeStart := 0;
id HTTP.ContentRangeEnd := 149;
SimpleRSS.LoadFromHTTP('http://www.irgendwas/test.php');
//2er Teil//
id HTTP.ContentRangeStart := 150;
id HTTP.ContentRangeEnd := 299;
SimpleRSS.LoadFromHTTP('http://www.irgendwas/test.php');
//3er Teil// unsw
Dauert das nicht laenger als wenn ich alles auf einmal downloade?

MFG Lucius.

gsh 12. Dez 2005 19:33

Re: Datei in mehreren Teilen downloaden mit HTTP.get moeglic
 
@lucius: Ahm so macht man des aber im normalfall nicht

Schon mal was von CodeLibary gehört steht auch viel drinnen. Klick

marabu 12. Dez 2005 19:55

Re: Datei in mehreren Teilen downloaden mit HTTP.get moeglic
 
Lucius, du brauchst die Datei so oder so in einem Stück, damit du sie an SimpleRSS zum Parsen übergeben kannst. Wie ich schon vorhin geschrieben habe, würde ich die Stückelung nicht als Standard-Feature sehen, sondern als einen Notnagel, der nur gebraucht wird, wenn die Verbindung mal während der Übertragung verloren geht. Und ja, es dauert tatsächlich länger, als wenn du alles auf einmal runter lädst. Mit welcher Bandbreite gehst du denn ins Internet, dass du dir schon bei 600 KB Sorgen machst?

marabu

lucius 12. Dez 2005 21:09

Re: Datei in mehreren Teilen downloaden mit HTTP.get moeglic
 
Hi marabu,
Zitat:

Mit welcher Bandbreite gehst du denn ins Internet, dass du dir schon bei 600 KB Sorgen machst?
Ich habe nen 4MBit Anschluss mit 90kb/sec Upload, wenn die Application laeuft und ich habe MSN zusammen mit zb nen Torrentclient am laufen dann dauert es schon einige Sekunden bis der Update vollstaendig abgeschlossen ist und ich denke das liegt an der idHTTP Komponente.
Das ist es ja gerade er muesste doch eigentlich schnell fertig sein mit dem Downloaden und verarbeiten der Datei vom Server.
Ich benutze keinen Proxy und habe keinen Router.
Koennte ich die MaxLineLength und RecvBufferSize Property der idHTTP Komponente etwas vergroessern damit es schneller geht?
Beide stehen jetzt auf Defaultgroesse.

MFG Lucius.

Unplugged 14. Dez 2005 07:25

Re: Datei in mehreren Teilen downloaden mit HTTP.get moeglic
 
naja man erwartet doch aber auch nicht, dass ein Update in weniger als einer Sekunde abgeschlossen ist?
Du kannst ja auch mal messen, mit welcher Geschwindigkeit die Daten empfangen werden. Ich meine, wenn der Server nur 30 kb/s beispielsweise gibt, dann dauert das halt seine Zeit.

Falls noch nicht enthalten, sollte natürlich vorher geprüft werden, ob ein Update notwendig ist. Ich weiß ja nicht, wie das aktuell bei dir abläuft.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz