Entwickler-Ecke

Internet / Netzwerk - idhttp + Redirect behandeln (IndyHTTPGetThreaded v. Luckie)


codipodi - Do 26.04.12 08:34
Titel: idhttp + Redirect behandeln (IndyHTTPGetThreaded v. Luckie)
Hallo zusammen,
ich habe folgendes Problem mit der IndyHTTPGetThreaded Demo von Luckie:
http://www.michael-puff.de/Programmierung/Delphi/Demos/IndyHTTPGetThreaded.zip

Der Downloadthread soll eine Prozedur aufrufen (updatedata) welche natürlich erst dann ausgeführt werden soll wenn der Download komplett fertig ist. Jetzt habe ich jedoch das Problem das teilweise ein oder mehrere Redirects erfolgen und der Downloadthread meiner Meinung nach jedes mal das FWorkEndevent auslöst.

Ist die Analyse soweit korrekt? Falls ja, wie kann ich das beheben?

Ich habe mir folgendes gebastelt, aber es scheint nicht komplett zu funktionieren. Teilweise lädt er dann komplett herunter aber führt ShowEnd nicht aus.


Delphi-Quelltext
1:
idHTTP.OnRedirect:=erkenneredirect;                    



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TDownloadThread.erkenneredirect(Sender: TObject; var dest: stringvar
    NumRedirect: Integer; var Handled: Boolean; var VMethod: string);
begin
   Handled := True;
  redirectnr:=redirectnr+1;
end;



Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TDownloadThread.FWorkEndevent(ASender: TObject; AWorkMode: TWorkMode);
begin
if redirectnr <= 0 then Synchronize(ShowEnd)
else redirectnr:=redirectnr-1;
end;



Delphi-Quelltext
1:
2:
3:
4:
procedure TDownloadThread.ShowEnd;
begin
 form1.updatedata;
end;


Danke!

LG,
Christian


Edit: Lösung ist hier zu finden: http://www.delphipraxis.net/167989-idhttp-redirect-behandeln.html