![]() |
Fehlermeldung bei idhttp.get
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:
Das Abfragen funktioniert wunderbar.
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; 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. |
Re: Fehlermeldung bei idhttp.get
Ich würde einfach einen Haltepunkt setzen und dann schauen wo er abraucht.
|
Re: Fehlermeldung bei idhttp.get
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 |
Re: Fehlermeldung bei idhttp.get
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. |
Re: Fehlermeldung bei idhttp.get
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:43 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