[Mac OS X] Problème de téléchargement HTTP avec Indy
Bonjour,
Je tente de faire un simple download HTTP via Indy. Le fichier est un executable zippé, mais le même problème se pose sur un exécutable non zippé. Problème : Le fichier résultant contient des fragments de header HTTP.
Apparemment, le téléchargement se passe bien jusqu'au 4 premiers Ko.
Ensuite, je trouve ceci dans le fichier:
Code:
1 2 3 4 5 6 7 8 9
|
HTTP/1.1 200 OK
Date: Wed, 13 Apr 2011 16:10:51 GMT
Server: Apache/1.3.41 Ben-SSL/1.59
Last-Modified: Tue, 20 Jul 2010 10:58:27 GMT
ETag: "7008b0f1-152ba7-4c458153"
Accept-Ranges: bytes
Content-Length: 1387431
Content-Type: application/zip |
8O
Enfin, les 4 premiers Ko sont à nouveau ajoutés et ainsi de suite jusqu'à ce que le fichier final fasse précisément la taille du fichier à télécharger. En clair, j'obtiens un fichier dont la structure est la suivante:
Code:
1 2 3 4 5 6
|
4096 premiers octets corrects
Header HTTP
Répétition des 4096 premiers octets
Header HTTP
etc. |
avec taille finale du fichier téléchargé exactement égale au fichier distant.
Voici le code pascal qui réalise le téléchargement, src étant le nom du fichier
à télécharger et dst le fichier local à enregistrer:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
Stream := TFileStream.Create(dst, (fmCreate));
try
idHttp1.Get(gc_www_download + src, Stream); //téléchargement
except
on e: Exception do
begin
result := false;
end;
end;
Stream.Free; |
Y a-t-il une subtilité ?
Précision: Indy 10.2.0.3 sous lazarus. Le développement étant fait pour Mac OS X.
Merci d'avance pour toute suggestion.
André.