AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Fehlermeldung bei idhttp.get
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlermeldung bei idhttp.get

Ein Thema von wadriller · begonnen am 25. Feb 2009 · letzter Beitrag vom 25. Feb 2009
Antwort Antwort
wadriller

Registriert seit: 25. Feb 2009
43 Beiträge
 
Delphi XE2 Professional
 
#1

Fehlermeldung bei idhttp.get

  Alt 25. Feb 2009, 15:04
Hallo zusammen.

Hier im Forum hab ich ja schon den Tipp gefunden wie man bei den Indys ein "OnError"-Event einbaut.
Das hab ich auch gemacht, hierfür erstmal vielen Dank.

Leider hab ich noch ein weiteres Problem.
Der Code läuft in einem eigenen Thread der vom Hauptprogramm gestartet wird.

Delphi-Quellcode:
private
  procedure OnIndyError(fErrorType: TErrorType;fErrorMsg: String);

...
...
...

constructor xxx.Create(Image: TPMultiImage; ToDo: Integer);
begin
 .....
  // Exceptionbehandlung für die Indy Komponenten
  // Code aus Delphi Praxis
  vIndyException:=TIndyException.Create;
  vIndyException.OnError:=OnIndyError;
  inherited Create(true);
end;

....
....
....

procedure xxx.HTTPAbfrage;
var
  Parameter, Header, HTTPContent: String;
begin
.....
  try
    HTTPContent := HTTP.Get(AbfrageURL + '?' + Parameter); // Starte HTTP Abfrage
    HTTPAuswerten(HTTPContent);
  except
    HTTPContent := '';
    AnfrageStatus := mlsSendenFehler;
    if PruefeInternetVerbindung then begin
      OnlineStatus := mlsOnline;
    end else begin
      OnlineStatus := mlsOffline;
    end;
    http.Disconnect;
  end;
end;

....
....
....


procedure xxxx.OnIndyError(fErrorType: TErrorType; fErrorMsg: String);
begin
  LastIndyError := fErrorMsg;
end;
Das Abfragen funktioniert wunderbar.

Wenn ich jetzt aber z.B. bei der HTTP-Komponenten (TIdHTTP) einen Proxyserver eintrage den es nicht gibt, oder wenn ich den Code über einen Knopf schnell hintereinander zweimal aufrufe (was gehen soll), versucht er das GET und bringt danach die Meldung

Win32Error. Fehler Code:5
Zugriff verweigert.

Danach geht die komplette Anwendung zu. Was könnte das sein ?

Liegt es evtl. daran das ich versuche, falls eine Connection da ist, da erst ein disconnect zu machen ?
Hab leider keine Variante gefunden wie ich sonst ein laufendes "GET" abbrechen kann.
Gruß
Michael
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Fehlermeldung bei idhttp.get

  Alt 25. Feb 2009, 15:30
Ich würde einfach einen Haltepunkt setzen und dann schauen wo er abraucht.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
wadriller

Registriert seit: 25. Feb 2009
43 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Fehlermeldung bei idhttp.get

  Alt 25. Feb 2009, 15:37
Das ist garnicht so einfach.

Hab schon "Bei Delphi-Exceptions stoppen" angehakt, getestet und danach konnte ich den Rechner ausschalten und neu starten.
Der war komplett tot. Werd es aber mal mit nem Haltepunkt versuchen
Gruß
Michael
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Fehlermeldung bei idhttp.get

  Alt 25. Feb 2009, 15:49
Wenn du die Http-Komponente nur innerhalb der Funktion nutzt würde ich dazu übergehen diese innerhalb der Funktion zu declarieren, dort zu erzeugen und auch dort frei zu geben. Dann hast du schonmal nicht das Problem das während dem Laden ein anderer Thread (oder durch Processmessages der gleiche) nochmals ein Laden beginnt.
Anderenfalls würde ich da einfach eine Prüfung drum setzen ob er bereits in dem Abschnitt ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
wadriller

Registriert seit: 25. Feb 2009
43 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Fehlermeldung bei idhttp.get

  Alt 25. Feb 2009, 15:59
Vor dem Aufruf von "HTTPAnfrage" wird noch eine Funktion "HTTPINIT" aufgerufen.
Dort wird die HTTP Komponente erzeugt und nach dem Aufruf von HTTPAnfrage wird das auf wieder freigegeben.
Gruß
Michael
  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:24 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