Ich versuche verzweifelt eine Datei via synapse runter zu laden. Dazu habe ich die unten stehende Routine geschrieben.
Mein Problem ist nun, dass die erste URL nur eine Weiterleitung nach
https://s3.amazonaws.com/gs-geo-images/ ... 4f24_l.jpg
ist. Rufe ich die Routine mit der Weiterleitung auf, dann wird das Bild problemlos geladen. Nur leider gelingt es mir nicht den weiterleitungslink aus dem Ursprünglichen zu extrahieren. Hat einer von euch ne Idee wie ich das bewerkstelligen kann ?
Code: Alles auswählen
Function DownLoadFile(URL, Filename: String): Boolean;
Var
f: TFileStream;
m: TMemoryStream;
sl: TStringList;
Begin
result := false;
With THTTPSend.Create Do Begin
// Versuch die Weiterleitung raus zu bekommen
sl := TStringList.Create;
If HttpGetText(url, sl) Then Begin
showmessage(sl.text); // sl.text ist immer ''
End;
// Wenn ich die URL von Hand setze, dann wird das bild sauber geladen
url := 'https://s3.amazonaws.com/gs-geo-images/0b027a04-10ad-45b0-85c7-7957d8e94f24_l.jpg';
m := TMemoryStream.Create;
If HttpGetBinary(url, m) Then Begin
Try
If m.Size <> 0 Then Begin
m.Position := 0;
f := TFileStream.Create(Filename, fmOpenWrite Or fmCreate);
f.CopyFrom(m, m.Size);
f.Free;
result := true;
End;
Except
End;
End;
m.free;
Free;
End;
End;
Aufruf mit :
DownLoadFile('http://img.geocaching.com/cache/large/0b027a04-10ad-45b0-85c7-7957d8e94f24.jpg', 'test.jpg');