Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   idHTTP download nach Weiterleitung (https://www.delphipraxis.net/155011-idhttp-download-nach-weiterleitung.html)

Freiwilderer 5. Okt 2010 09:19

idHTTP download nach Weiterleitung
 
Hallo zusammen,
und zwar habe ich das Problem, dass ich TIF dateien vom Server eines Kunden herunterladen muss.
Ich bekomme aber nicht den direkten Link zur TIF Datei, sondern einen Link, der mich auf einen anderen Server weiterleitet und dort geht dann im normalen Browser der automatische Speicherdialog auf.

Ich hatte folgendes probiert:
Delphi-Quellcode:
        URL:=iHtmlLink; //Link der in einer CSVDatei übergeben wird
    FS:=Tfilestream.Create('C:\Test_01.tif',fmCreate);
   fMain.IdHTTP1.Get(URL,FS);
   FS.Free;
Was Funktioniert, wenn man einen direkten Link zu einer Datei hat.

Hier erstellt er durch das Create eine Test_01.tif, die aber leer bleibt. und gibt folgende Fehlermeldung aus:

Im Projekt test.exe ist eine Exception der Klasse EIdHTTPProtocolException aufgetreten. Meldung 'HTTP/1.1 307 Temporary Redirect'. Prozess wurde angehalten.......

gibt es eine andere Möglichkeit, als das Get, oder kann ich irgendwie feststellen, wo ich automatisch hingeleitet werden soll und dann die URL Variable entsprechend anpassen?

wäre toll, wenn da jemand eine Idee hätte

mfg

Edit:
ich habe mir gerade den Queltext der ersten Seite angeschaut und scheinbar wird das weiterleiten auf die nächste seite über ein javascript gelöst.
was die Sache sicher nicht grad leichter macht ...

BUG 5. Okt 2010 11:56

AW: idHTTP download nach Weiterleitung
 
Code:
HTTP/1.1 307 Temporary Redirect
würde eigentlich heißen, dass der Server zumindest die Antwort für Umleitung sendet.

Steht IdHTTP1.HandleRedirects auf true?

Freiwilderer 5. Okt 2010 12:26

AW: idHTTP download nach Weiterleitung
 
hi,
schonmal vielen Danke für die rasche antwort

ja, HandleRedirects steht auf True. Das hab ich aber erst nach meinem eintrag hier probiert.
Seitdem kommt keine fehlermeldung mehr.

Dabei ist mir aufgefallen, dass er dann wirklich die zweite URL hat.
darauf hin hab ich dann folgendes eingefügt.

Delphi-Quellcode:
   
   fMain.IdHTTP1.Get(URL);
   URL := fMain.IdHTTP1.URL.URI;
   fMain.IdHTTP1.Get(URL,FS);
Aber jetzt lädt er im grunde die HTML datei der seite runter und packt sie in die TIF Datei...
Also im grunde hab ich schon n fuß in der tür ;D

ich hab auch das einmal versucht:
Delphi-Quellcode:
   
   fMain.IdHTTP1.Get(URL);
   URL := fMain.IdHTTP1.URL.URI;
   fMain.IdHTTP1.Get(URL);
   URL := fMain.IdHTTP1.URL.URI;
   fMain.IdHTTP1.Get(URL,FS);
in der Hoffnung, dass er sich dann noch eine seite weiterleiten lässt und dann den direkten Datei link bekommt.
das hat aber leider nicht funktioniert, der Link bleibt der der zweiten seite.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 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