AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke TNetHTTPRequest.Get im Fehlerfall

TNetHTTPRequest.Get im Fehlerfall

Ein Thema von TurboMagic · begonnen am 13. Feb 2020 · letzter Beitrag vom 13. Feb 2020
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
869 Beiträge
 
Delphi 10.3 Rio
 
#1

TNetHTTPRequest.Get im Fehlerfall

  Alt 13. Feb 2020, 09:49
Hallo,

wir nutzen Delphi 10.3.2 und wollen mittels TNetHTTPRequest.Get etwas via HTTPS herunterladen.
Wir wollen das noch etwas absichern und führen daher eine zertifikatsprüfung durch
(wir prüfen einfach den Namen) und lassen die zu Testzwecken gerade scheitern.

An der Stelle wo wir Get aufrufen bekommen wir eine IHTTPResponse zurück.
In unserem negativ Testfall gibt's dann innerhalb der get eine Exception, die dort
aber behandelt wird.

Versuchen wir dann aber auf Felder der zurückgegebenen IHTTPResponse zuzugreifen
(v.a. auf StatusCode) kracht es mit

"---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt LisaNT.exe ist eine Exception der Klasse ENetHTTPException mit der Meldung
'Fehler beim Abrufen der Header: (6) Das Handle ist ungültig' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------"

Wie bekommen wir in dem Fall mit (ohne generisch die ENetHTTPException im except Block abzufragen),
dass diese Info nicht zur verfügung steht?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
36.388 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TNetHTTPRequest.Get im Fehlerfall

  Alt 13. Feb 2020, 11:03
Bekommt ihr im Fehler da überhaupt etwas zurück?
Wenn nicht, dann nicht auf das ungültige Result zugreifen, sondern mal nachsehn, ob das TNetHTTPRequest noch irgendwo eine Info zur letzten Abfrage bereitstellt.

Ansonsten:
Try-Except
Delphi-Quellcode:
except
  on E: ENetHTTPException do
    ...
  else
    raise;
end;

// aka

except
  on E: Exception do
    if E is ENetHTTPException then
      ...
    else
      raise;
end;
oder mal nachsehen, ob die THTTP-Dinger nicht irgendw anbieten ein OnException-Methode zu registrieren, bzw. ob es dort Optionen gibt, womit man regeln kann wie diese Komponenten auf bestimmte Fehler reagieren.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
7.755 Beiträge
 
Delphi XE4 Professional
 
#3

AW: TNetHTTPRequest.Get im Fehlerfall

  Alt 13. Feb 2020, 14:04
Hallo,
hier steht was von OnRequestError

http://docwiki.appmethod.com/appmeth...r_HTTP-Antwort
Heiko
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
869 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: TNetHTTPRequest.Get im Fehlerfall

  Alt 13. Feb 2020, 16:32
Ja, das sollten wir uns mal anschauen, danke!
Was an der Doku doof ist (ist im richtigen Dokwiki, du verlinktest ja das von AppMethod, auch nicht besser),
ist, dass der Typ des Fehlerevents nicht verlinkt ist und wenn man den mit etwas Suche weiter oben in der
Hierarchie gefunden hat, dann ist die Syntax dort nur in C++ angegeben...
Hat man gerade kein Delphi in der Hand dauert das Verständnis somit etwas länger.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: TNetHTTPRequest.Get im Fehlerfall

  Alt 13. Feb 2020, 16:42
Habe ich bei der Delphi Hilfe auch schon festgestellt, da ist zwar immer beides angegeben, aber C++ immer als erstes. Dabei nutzen wohl die wenigsten Delphi zur C++ Entwicklung.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
869 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: TNetHTTPRequest.Get im Fehlerfall

  Alt 13. Feb 2020, 21:18
Naja, beides angezeigt wäre ja ok,
aber in dem Thema steht es nur in C++ Syntax.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf