AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem beim Download mit IdHTTP
Thema durchsuchen
Ansicht
Themen-Optionen

Problem beim Download mit IdHTTP

Ein Thema von Metatron220 · begonnen am 28. Dez 2005 · letzter Beitrag vom 29. Dez 2005
Antwort Antwort
Metatron220

Registriert seit: 31. Okt 2004
33 Beiträge
 
#1

Problem beim Download mit IdHTTP

  Alt 28. Dez 2005, 16:36
Ich möchte gerne über ein IdHTTP eine Datein in einen Filestream laden. Das ist auch nicht weiter das Problem. Aber wie komme ich an die Datei, wenn die URL (wie auch hier im Forum) so aussieht:
http://www.delphipraxis.net/download.php?id=16292

Vielen Dank schon mal im Voraus.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Problem beim Download mit IdHTTP

  Alt 28. Dez 2005, 17:43
Die erste Klippe ist oft ein HTTP Redirect, aber die umschiffst du elegant, indem du die property HandleRedirects der Indy HTTP Client-Komponente auf TRUE setzt. Danach wird es haariger, weil du damit rechnen musst, dass dir noch ein HTTP Refresh begegnet. Im Prinzip musst du zuerst mal in einen MemoryStream laden. Wenn der ContentType text/html ist, dann musst du die Header nach META REFRESH durchsuchen und auf den angegebenen URL umschwenken. Sobald du etwas anderes als text/html serviert bekommst, kannst du den MemoryStream in einen FileStream kopieren und fertig.

Grüße vom marabu
  Mit Zitat antworten Zitat
Metatron220

Registriert seit: 31. Okt 2004
33 Beiträge
 
#3

Re: Problem beim Download mit IdHTTP

  Alt 28. Dez 2005, 17:58
Vielen Dank für die schnelle Hilfe. Das werde ich gleich mal ausprobieren.
  Mit Zitat antworten Zitat
Metatron220

Registriert seit: 31. Okt 2004
33 Beiträge
 
#4

Re: Problem beim Download mit IdHTTP

  Alt 28. Dez 2005, 18:27
Jetzt hab ich leider ein weiteres Problem. Wie überprüfe ich den ContentType? Und des weiteren weiß ich leider auch nicht wie ich den Header durchsuche und dann auf die URL zugreife. Tut mir wirklich leid aber ich bin ein absoluter Anfänger was Indy angeht :/
Vielen Danke schon mal.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Problem beim Download mit IdHTTP

  Alt 28. Dez 2005, 19:35
Den ContentType erhältst du ziemlich einfach, wenn du HTTP.Request.ContentType untersuchst. Das Refresh-Meta-Tag ist schwieriger zu besorgen, weil du den HTML-Code analysieren musst. Dazu brauchst du einen Parser, ein DOM FrameWork, regular expressions oder ein paar clevere Text-Routinen. Wie willst du weiter machen?

marabu
  Mit Zitat antworten Zitat
Metatron220

Registriert seit: 31. Okt 2004
33 Beiträge
 
#6

Re: Problem beim Download mit IdHTTP

  Alt 28. Dez 2005, 22:38
Am besten mit dem, was am einfachsten zu realisieren ist. Ich kenne mich mit allem davon nicht aus. ^^
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Problem beim Download mit IdHTTP

  Alt 29. Dez 2005, 10:27
Zitat von Metatron220:
Am besten mit dem, was am einfachsten zu realisieren ist.
Mir gefällt der Ansatz mit dem Parser. Ich habe dir ein kleines Demo-Projekt erstellt, mit dem du den HTML-Code einer Seite daraufhin analysieren kannst, ob ein refresh nötig ist. Die Demo verwendet den MSHTML Parser. Als kleine Besonderheit arbeite ich in der Demo mit den markup interfaces und verzichte auf die WebBrowser Komponente, da du die Seiten ja mit dem Indy HTTP-Client abholen möchtest. Wenn du keinerlei Erfahrung im Umgang mit dieser Technologie hast, dann solltest du dich ein wenig belesen, bevor du an der Prozedur ParseHTML Änderungen vornimmst.

Grüße vom marabu
Angehängte Dateien
Dateityp: zip parsehtml_396.zip (2,8 KB, 93x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:38 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