Error-Behandlung in der NMHTTP-Komponente
-
Hi
Ich benutze die Fastnet NMHTTP-Komponente für HTPP-Requests.
Es funktioniert auch alles soweit super, nur wenn der Server nicht erreichbar ist, dann bekomme ich eine ESocketError.Ich hab natürlich schon recherchiert , und müßte das Event OnError handeln.
Jedoch ist das in der NMHTTP-Komponente nicht vorhanden.Weiß jemand wie ich das aus TPowersock ableiten kann?
Sodaß ich dann in der Funktion nur den ErrorCode auf 0 setze, und keine Exception mehr geworden wird?
Oder irgend eine andere Idee, wie ich das verhindern kann?
Mfg Reinhold Fischer
-
Hallo
wie wäre es mit dem OnFailure- oder dem OnConnectionFailed-Event?
bis bald
akari
-
Hi
Diese Events behandle ich ja, jedeoch werden sie erst nach der Exception aufgerufen.
Wenn ich NMHTTP1->Get(...) aufrufe, und der Host ist nicht erreichbar, passiert erstmal garnichts.
rufe ich nochmal auf, kommt die Exception.
Wenn ich die Wegklicke, und im Builder auf nächsten Schritt klicke, kommt eine interne Fehlermeldung: 10022: InvalidArgument
Danach kommt meine Fehlerbehandlung, aus der OnInvalidHost-routine.
Onfailure/OnConncetionFailed werden garnicht aufgerufen.
Und dann kommt nochmal die Exception.Hier der Code:
void __fastcall TForm1::InternetInvalidHost(bool &Handled) { MessageBox(this->ClientHandle,"InvalidHost","Fehler",MB_OK); } //--------------------------------------------------------------------------- void __fastcall TForm1::InternetFailure(CmdType Cmd) { MessageBox(this->ClientHandle,"InternetFailue","Fehler",MB_OK); } //--------------------------------------------------------------------------- void __fastcall TForm1::InternetConnectionFailed(TObject *Sender) { MessageBox(this->ClientHandle,"InternetConnectionFailed","Fehler",MB_OK); } //----------Und hier der Aufruf:
Internet->Get("http://165.168.1.92/axis-cgi/com/ptz.cgi?camera=1&rzoom=500");Eigenschaften von NMHTTP:
Alles auf den Standart-Start werten.Mfg Reinhold Fischer
-
Hi
Also, konnte es jetzt soweit alles hinkriegen.
Wenn man die exe außerhalb von von bcb startet, fängt er die exceptions.Nun hab ich nur noch folgendes Problem:
Wenn ich das erstemal get aufrufe, passiert garnichts.
Also, weder exception, noch aufruf einer fehlfunktion?was ist da los?
mfg reinhold fischer