Hi @ll,
ich habe in der Suche versucht über das Thema Proxy Cache was zu finden aber bin leider nicht fündig geworden.
Ich habe folgendes Problem, ich habe eine Client - Anwendung bei der ich die
indy 10 idhttp Komponente benutze.
Ich hole ein Zip Archiv über den Get Befehl, funktioniert soweit auch alles.
Wenn der Client ein Proxy Server verwendet, ist soweit auch kein Problem gebe die Authentifizierungsdaten mit usw.
alles in Ordnung.
Hat der Proxy aber noch einen Proxy Cache und es erfolgt eine Weiterleitung. Gibt es einen Http 302.
Soweit so gut, stelle ich HandleRedirect auf true.
Problem:
Nur der
indy http client versteht dann nicht richtig die Progress Message vom Proxy, so das ein kleiner Teil
von der Datei an den Clienten weitergegeben wird. Der
Indy Client downloaded diesen Teil und denkt danach er sei fertig.
Der Proxy ist aber derweil noch dabei die empfangene Datei zu speichern als lokale Kopie für den weiteren Gebrauch (macht nen Virenscan da drauf und was weiß ich noch.) Sprich mein Download ist dann incomplete.
Frage:
Gibt es eine Möglichkeit dem Idhttp Clienten beizubringen das er die Progress Message vom Proxy versteht? Oder liegt das
Problem dann bei dem Proxy Server da dieser vielleicht nicht den richtigen Progress abgibt? Und ich habe keinen Einfluss da
drauf?
relevanter Code:
Delphi-Quellcode:
if(proxyAnmeldung = true) then
begin
IdHTTPGet.HTTPOptions := [hoInProcessAuth];
IdHTTPGet.ProxyParams.BasicAuthentication := true;
IdHTTPGet.ProxyParams.ProxyUsername := proxyUser;
IdHTTPGet.ProxyParams.ProxyPassword := proxyPass;
end;
ziel := pfad;
delete(ziel,1,pos('=',ziel));
pfadundDatei := pfadtemp+ziel;
lStream:=TFileStream.Create(pfadundDatei, fmCreate or fmShareDenyNone);
lStream.Position := 0;
try
//Dateien werden übertragen
IdHTTPGet.Get(link, lStream);
finally
if Assigned(lStream) then lStream.Free; //FileStream freigeben wenn gesetzt
if (abbrechen = true) then deleteFile(pfadundDatei);
end;
greetz Lun
Thx for help