AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke TRestRequest HTTP Exception unter 500 abfangen
Thema durchsuchen
Ansicht
Themen-Optionen

TRestRequest HTTP Exception unter 500 abfangen

Ein Thema von stalkingwolf · begonnen am 1. Aug 2017 · letzter Beitrag vom 1. Aug 2017
Antwort Antwort
stalkingwolf

Registriert seit: 6. Mai 2011
518 Beiträge
 
#1

TRestRequest HTTP Exception unter 500 abfangen

  Alt 1. Aug 2017, 13:49
Ich habe mich schon gewundert warum meine Kunden bei einer falsch eingegeben URL keine Fehlermeldung erhalten haben und ich habe mir die RestClient Komponente angeschaut.
In executewerden Exceptions abgefangen und nur weitergegeben wenn sie über 500 sind und ein Eigenschaft RestClient.RaiseExceptionOn500 auf TRUE sitzt.

Auszug daraus
Code:
 except
        // any kind of server/protocol error
        on E: EHTTPProtocolException do
        begin
          FExecutionPerformance.ExecutionDone;
          // we keep measuring only for protocal errors, i.e. where the server actually anwered, not for other exceptions.
          LContent := E.ErrorMessage; // Full error description

          //Fill RESTResponse with actual response data - error handler might want to access it
          ProcessResponse(LURL, LResponseStream, LContent);

          [B]if (E.ErrorCode >= 500) and Client.RaiseExceptionOn500 then
            raise ERESTException.Create(E.Message);[/B]
          HandleEvent(DoHTTPProtocolError);
        end;
Wie kann ich Fehler unter 500 abfangen? Weil mein try..error um das execute wird nicht ausgeführt
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#2

AW: TRestRequest HTTP Exception unter 500 abfangen

  Alt 1. Aug 2017, 13:55
RestClient.OnHTTPProtocolError implmentieren (siehe DoHTTPProtocolError)
http://docwiki.embarcadero.com/Libra...PProtocolError

oder anschließend den Content der fehlerhaften Abfrage ansehen. (siehe ProcessResponse)


Dieses Execute gibt nur "schwerwiegende" Server-Fehler ins Programm raus, wenn >500 aktiviert, aber Client-Fehler und kleine Serverproblemchen werden im Error-Event behandelt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 1. Aug 2017 um 14:02 Uhr)
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
518 Beiträge
 
#3

AW: TRestRequest HTTP Exception unter 500 abfangen

  Alt 1. Aug 2017, 13:57
Ne ist RESTRequest1HTTPProtocolError.
Aber dort steht in errorMessage nichts drin und in Content die HTML Meldung.
Ich würde aber gern den Fehler korrekt abfangen und darauf reagieren.
In getLastError steht immer 0 drin.

Mir geht es darum das Kunden in Ihren Pads die falschen URLs eintippen und ich das bei der Einstellung schon abfangen möchte ob diese korrekt sind.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#4

AW: TRestRequest HTTP Exception unter 500 abfangen

  Alt 1. Aug 2017, 14:03
MSDN-Library durchsuchenGetLastError ?

Das ist natürlich nur für Fehler in Funktionen der WinAPI.



Du hast halt nicht die große Wahl.

Zitat:
HandleEvent(DoHTTPProtocolError);
Also entweder OnHTTPProtocolError,
Zitat:
Delphi-Quellcode:
// we keep measuring only for protocal errors, i.e. where the server actually anwered, not for other exceptions.
LContent := E.ErrorMessage; // Full error description
//Fill RESTResponse with actual response data - error handler might want to access it
ProcessResponse(LURL, LResponseStream, LContent);
oder Response-Content.

Und alles was keine EHTTPProtocolException ist, wird von diesem Code eh nicht behandelt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 1. Aug 2017 um 14:08 Uhr)
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
518 Beiträge
 
#5

AW: TRestRequest HTTP Exception unter 500 abfangen

  Alt 1. Aug 2017, 14:15
Ok dann parsen wir HTML Code.
  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 06:02 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