![]() |
Indy Head Probleme
Hiho zusammen,
hab mir den Code aus der Code-Lib für den Download mit Indy und der Fortschrittsanzeige geholt ![]() Den Link hol ich hiermit: ![]() An dem Code aus der Code-Lib
Delphi-Quellcode:
hab ich noch was kleines geändert. Aber jedesmal kommt ein "Read Timeout", da die URL nicht die direkte URL zu dem Video ist sondern eine Weiterleitung.
Status.Caption := 'Prüfe Header';
// Durch die zwei nächsten Befehle wird die Größe ermittelt und ihn der Variable BytesInsgesamt abgespeichert IdHTTP.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'; IdHttp.HandleRedirects:=true; IdHTTP.Head(Edit1.text); Bsp: ![]() ![]() ![]() Der 2. Link wird im IdHttp.Head abgefragt, da kommt es dann aber zu dem besagten Error. Wenn ich den 3. Link eingebe funktioniert das Runterladen. Hat jmd eine Idee wenn ich an die URL komme, bzw das HandleRedirects auch Head beeinflusst? MfG blink182 |
Re: Indy Head Probleme
Hi!
Bist du sicher, dass es nicht ein Problem mit YouTube ist? (Also ein Schutzmechanismus z.B.) In dem Thread hier, solltest du vllt. Infos finden - da waren auch so Sachen mit Signatur u.ä., was Youtube mittlerweile so eingeführt hat: ![]() Ciao, Frederic |
Re: Indy Head Probleme
ne das klappt ja eigentlich mit dem Runterladen. Wenn ich es ohne die Downloadanzeige mache, wird das Video auch geladen. Aber ich werd mal schauen, danke.
|
Re: Indy Head Probleme
Hi!
Also du hast einen funktionierenden Download, aber ohne Indy oder wie? Und du willst nur die Fortschrittsanzeige einbinden? Ciao, Frederic |
Re: Indy Head Probleme
mit Indy funktioniert der download an sich.
Zitat:
ja und ich möchte eigentlich nur die Fortschrittsanzeige einbinden. |
Re: Indy Head Probleme
*push*
|
Re: Indy Head Probleme
Hallo,
für den Fortschritt kannst Du doch OnStatus, OnWorkBegin, OnWork und OnWorkEnd benutzen. Habe mal eben was zusammengedaddelt:
Delphi-Quellcode:
In der Progressbar sieht man schön den Balken laufen.
procedure TForm1.Button1Click(Sender: TObject);
begin Screen.Cursor := crHourGlass; Memo1.Lines.Clear; IdHTTP.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'; IdHttp.HandleRedirects := True; IdHTTP.Head(Edit1.text); IdHTTP.Get(Edit1.text); IdHTTP.Disconnect; Screen.Cursor := crDefault; end; procedure TForm1.IdHTTPStatus(ASender: TObject; const AStatus: TIdStatus; const AStatusText: String); begin Statusbar1.SimpleText := AStatusText; Memo1.Lines.Add(AStatusText); end; procedure TForm1.IdHTTPWorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer); begin ProgressBar1.Max := AWorkCountMax; Memo1.Lines.Add('WorkBegin: WorkCountMax: ' + IntToStr(AWorkCountMax)); end; procedure TForm1.IdHTTPWork(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer); begin ProgressBar1.Position := AWorkCount; Memo1.Lines.Add('WorkCount: ' + IntToStr(AWorkCount)); end; procedure TForm1.IdHTTPWorkEnd(Sender: TObject; AWorkMode: TWorkMode); begin Memo1.Lines.Add('WorkEnd:'); Statusbar1.SimpleText := 'Habe fertig'; end; [edit]hat Schreibfehler gefunden[/edit] |
Re: Indy Head Probleme
mhm okay danke. Mich wundert nur, warum er 2 mal versucht eine Verbindung aufzubauen, auch wenn ich die Head-Abfrage rausgenommen hab. Aber es scheint so zu klappen. Mein eigentliches Problem ist jedoch noch nicht gelöst.
Es geht mir darum, dass ich bei den
Delphi-Quellcode:
einen Fehler bekomme, da es zu einem Timeout-Error kommt.
IdHttp.Head(Edit1.text);
Diesen Error bekomm ich da ich eine URL eingebe, die wohl weitergeleitet wird. Da es um Youtube-Videos geht, erhalte ich also nur die Weiterleitungsurl aus dem Video ![]() ![]()
Delphi-Quellcode:
für
IdHttp.HandleRedirected:=true
Delphi-Quellcode:
. Das runterladen über die noch nicht weitergeleitete URL funktioniert durch das HandleRedirected.
IdHttp.Head(Edit1.text);
Was ich mir als Alternative vorstellen könnte wie man das lösen kann, was aber glaub ich unschön ist, ggf. über TWebbrowser oder über ein OLE IE und dann die URL aufrufen und wieder abfangen, aber dann lad ich das video ja fast auch schon wieder doppelt und das ist ja auch nicht unbedingt der Sinn. Vllt geht es ja auch einfacher. |
Re: Indy Head Probleme
Ich meine mich zu erinnern, dass die Indys in der Version 9 dieses Problem bei jeder Head-Abfrage haben, sofern der Server HTTP/1.1 spricht. Es liegt also wahrscheinlich nicht an deiner speziellen URL mit dem Redirect.
Also entweder auf die 10-er Indys wechseln oder wirklich einfach ein Get machen und dann die Daten wegwerfen, wenn du sie nicht benötigst, oder schon mal zwischenpuffern. |
Re: Indy Head Probleme
okay danke, dann werd ich wohl auf Indy10 umsteigen und hoffen dass es klappt
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz