AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy 10: Closed Gracefully...mal wieder
Thema durchsuchen
Ansicht
Themen-Optionen

Indy 10: Closed Gracefully...mal wieder

Ein Thema von DieHardMan · begonnen am 12. Apr 2006 · letzter Beitrag vom 13. Apr 2006
Antwort Antwort
DieHardMan

Registriert seit: 16. Jul 2002
Ort: Stuttgart
68 Beiträge
 
#1

Indy 10: Closed Gracefully...mal wieder

  Alt 12. Apr 2006, 17:45
Hi,
möchte gerne die letzte redirect URL erfahren. Das Ganze funktioniert so auch, aber nur 1x, dann kommt ne "Connection Closed Gracefully" Exception und er springt zu Except. Weiß da jemand ne Lösung, hab jetzt schon ziemlich viel versucht.

Delphi-Quellcode:
  Try
    frmMain.IdHTTP1.Head(frmMain.strItemLink);
    Result := strActualHttpLink;
  Except
    Result := frmMain.strItemLink;
  End;
Delphi-Quellcode:
procedure TfrmMain.IdHTTP1Redirect(Sender: TObject; var dest: String;
  var NumRedirect: Integer; var Handled: Boolean;
  var VMethod: TIdHTTPMethod);
begin
  strActualHttpLink := dest;
end;
Alle meine Entchen...
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Indy 10: Closed Gracefully...mal wieder

  Alt 12. Apr 2006, 19:03
Die Macher der Indies haben ein etwas "unkonventionelles" Verständnis von Exceptions: Statusmeldungen, wie eben auch die, dass eine Verbindung geschlossen wurde, werden per Exceptions propagiert. Du musst halt entsprechend try-except-Blöcke bauen und beachten, dass in der Standardeinstellung der IDE beim Debuggen Exceptions trotz Behandlung angezeigt werden.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
DieHardMan

Registriert seit: 16. Jul 2002
Ort: Stuttgart
68 Beiträge
 
#3

Re: Indy 10: Closed Gracefully...mal wieder

  Alt 12. Apr 2006, 21:13
Jo weiß schon, hab schon die anderen threads durchgeschaut, aber wie bekomm ich folgenden Code zum laufen? Der funktioniert immer nur 1x und dann kommt Connection blabla closed. Habs schon mit disconnect, connect, sockets probiert, alles hat nichts geholfen, nur wenn ich die Anwendung neustarte gehts wieder, einmal.

Delphi-Quellcode:
  Button1.Enabled := False;
  strActualHttpLink := '';
  IdHTTP1.Head('http://feeds.feedburner.com/foxsports/RSS/headlines?m=2749');
  Button1.Enabled := True;
Alle meine Entchen...
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#4

Re: Indy 10: Closed Gracefully...mal wieder

  Alt 12. Apr 2006, 23:30
So ginge es, auch wenns nicht ganz so ideal ist:
Delphi-Quellcode:
// ....
  public
    LastURL: String;
  end;

// ....

uses
  IdException;

// ....

procedure TForm1.IdHTTP1Redirect(Sender: TObject; var dest: string;
  var NumRedirect: Integer; var Handled: Boolean; var VMethod: TIdHTTPMethod);
begin
  LastURL := dest;
  Handled := false;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  CurURL : String;
  SomeError : boolean;
begin
  Button1.Enabled := false;

  LastURL := 'http://feeds.feedburner.com/foxsports/RSS/headlines?m=2749';
  SomeError := false;

  repeat
    Try
      CurURL := LastURL;
      IdHTTP1.Head(CurURL);
    Except
      On E: EIdConnClosedGracefully do
      begin
        SomeError := false;
      end;
      On E: EIdHTTPProtocolException do
      begin
        SomeError := E.ReplyErrorCode <> 302;
      end;
      On E: EIdException do
      begin
        SomeError := true;
      end;
      else
        raise;
    End;
  until SomeError or (LastURL = CurURL);

  Button1.Enabled := true;
end;
  Mit Zitat antworten Zitat
DieHardMan

Registriert seit: 16. Jul 2002
Ort: Stuttgart
68 Beiträge
 
#5

Re: Indy 10: Closed Gracefully...mal wieder

  Alt 13. Apr 2006, 00:59
Danke dass du dir jetzt die Mühe gemacht hast, aber hab schon die ICS Komponenten installiert und da hat folgender Code schon beim ersten Mal problemlos funktioniert, wie es eigentlich auch sein sollte bei so ner simplen Sache.

Delphi-Quellcode:
  frmMain.HttpCli1.URL := frmMain.strItemLink;
  frmMain.HttpCli1.Head;
  Result := frmMain.HTTPCli1.Location;
Auch Danke an Luckie der mich auf ICS verwiesen hat.
Alle meine Entchen...
  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 00:46 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