AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

REST-Client mit 404

Ein Thema von Incocnito · begonnen am 14. Sep 2021 · letzter Beitrag vom 14. Sep 2021
Antwort Antwort
Incocnito

Registriert seit: 28. Nov 2016
223 Beiträge
 
#1

REST-Client mit 404

  Alt 14. Sep 2021, 07:56
Hi Zusammen,

ich habe einen REST-Service, welcher bei einigen Kunden einen Endpunkt zur Verfügung stellt und bei einigen nicht.
Dort soll dann der HTTP-Code 404 zurück kommen. Das tut auch soweit, allerdings wirft die Komponente zusätzlich eine Exception.
Das ist zwar mit try-except abfangbar und die Kunden sehen davon dann auch nichts, aber ich empfinde das gerade beim Debuggen
(bei uns im Haus hat nur einer den Endpunkt in seinem jeweiligem REST-Service, alle anderen bekommen beim debuggen
immer wieder diese Exception) extrem nervig.

Verwendet werden TRestClient, TRestRequest und TRestResponse für die Verbindung.

Im TRestClient-Objekt wurde bereits "RaiseOnException500" auf "False" gesetzt,
aber bei anderen HTTP-Codes soll ja auch keine Exception kommen.

Jemand einen Tipp, wie ich "vernünftig" debuggen kann? meine derzeitige Lösung mit einem
Compilerschalter den Teil zu überspringen, finde ich jetzt nicht so geil.
Außerdem läuft man Gefahr, dass sowas dann beim Kunden landet.

Mit freundlichem Gruß
Incocnito
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: REST-Client mit 404

  Alt 14. Sep 2021, 08:16
aber ich empfinde das gerade beim Debuggen
(bei uns im Haus hat nur einer den Endpunkt in seinem jeweiligem REST-Service, alle anderen bekommen beim debuggen
immer wieder diese Exception) extrem nervig.
Deshalb kann man die Anzeige einzelner Exception-Typen ja auch deaktivieren (wird bei einer Exception direkt angeboten, außerdem in den Optionen). Dann wird die Exception auch beim Debuggen einfach ohne Meldung abgefangen, taucht aber im Ereignislog auf, damit man es nachvollziehen kann.

Im TRestClient-Objekt wurde bereits "RaiseOnException500" auf "False" gesetzt,
aber bei anderen HTTP-Codes soll ja auch keine Exception kommen.
Wenn du einmal in den Quelltext geschaut hättest, wenn der Fehler auftritt, hättest du gesehen, dass die Exception hier ausgelöst wird:
Delphi-Quellcode:
  if LResponse.StatusCode >= 300 then
    RaiseProtocolException(LResponse);
Da gibt es keine Bedingung, es passiert also immer.
Die genannte Property sorgt nur dafür, dass die Exception für den einen Fehlercode später abgefangen und unterdrückt statt weiter nach außen geleitet wird.

Da die Methoden auch nicht virtuell sind, könntest du sie nur hart im Speicher verbiegen. Aber ich empfehle die saubere Lösung, sprich wie schon geschrieben die Anzeige der Exceptions einfach zu unterdrücken.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.157 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: REST-Client mit 404

  Alt 14. Sep 2021, 08:48
Was in Delphi nur leider völlig unverständlicherweise weder session- noch projektbasiert ist sondern global.
Heißt: Solange du das nicht von Hand auch wieder ausmachst wird diese Art von Exception nie wieder im Debugger angezeigt. Echt nicht so dolle gelöst.
  Mit Zitat antworten Zitat
Incocnito

Registriert seit: 28. Nov 2016
223 Beiträge
 
#4

AW: REST-Client mit 404

  Alt 14. Sep 2021, 08:52
Danke für die Info jaenicke,
aber wie Günther schon sagt, an anderer Stelle will ich das ja.
Da muss ich mir wohl etwas anderes einfallen lassen.
Mal schauen, was die Kollegen meinen.

Liebe Grüße
Incocnito
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.157 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: REST-Client mit 404

  Alt 14. Sep 2021, 09:58
Zitat:
Außerdem läuft man Gefahr, dass sowas dann beim Kunden landet.
Du arbeitest aber schon mit einer Versionsverwaltung wie z.B. Git, oder?
  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 19:41 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