AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi SOAP mit HTTPRIO – Fehlerbehandlung ab Delphi 10.3.3 RIO

SOAP mit HTTPRIO – Fehlerbehandlung ab Delphi 10.3.3 RIO

Ein Thema von Papaschlumpf73 · begonnen am 29. Jan 2020 · letzter Beitrag vom 29. Jan 2020
Antwort Antwort
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
74 Beiträge
 
Delphi 10.3 Rio
 
#1

SOAP mit HTTPRIO – Fehlerbehandlung ab Delphi 10.3.3 RIO

  Alt 29. Jan 2020, 09:07
Seit vielen Jahren habe ich mehrere SOAP-Webservices in meine Anwendung (Client) unter Verwendung von THTTPRIO-Komponenten eingebunden. Wenn ein Funktionsaufruf des Webservices einen Fehler auslöste, wurde auf meinem Client eine Exception mit einer wenig aussagekräftigen Fehlermeldung geworfen. Ungefähr so wie in der Anlage - habe leider keine ältere Delphi-Version mehr installiert.

Um den Fehler genauer auszuwerten, hat mein Client das OnAfterExecute-Ereignis der HTTPRIO-Komponente verwendet und den gesamten SOAPResponse-Stream ausgewertet. Hier gibt es Message-Blöcke mit genauen Fehlerinformationen, die nicht in der Delphi-Standard-Exception enthalten waren.

Ab Delphi 10.3 RIO funktioniert das leider nicht mehr. Wenn ein Fehler bei einem Funktionsaufruf entsteht, wird das OnAfterExecute-Ereignis der HTTPRIO-Komponente offenbar gar nicht mehr ausgelöst.

Hat jemand eine Idee, wie ich an den gesamten SOAPResponse heran kommen kann, wenn der Funktionsaufruf fehl schlägt?
Miniaturansicht angehängter Grafiken
unbenannt.png  
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
482 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: SOAP mit HTTPRIO – Fehlerbehandlung ab Delphi 10.3.3 RIO

  Alt 29. Jan 2020, 14:01
Ich habe das Ereignis, das du benutzt hast, bisher nicht genutzt, da mir die "einfachen" Fehlermeldungen und Status-Codes bisher gereicht haben. Was ich dir allerdings sagen kann: Die SOAP-Komponenten wurden in 10.3 ja komplett überarbeitet und auf eine andere Netzwerkbibliothek im Hintergrund umgestellt. Dabei sind offenbar zwei, drei Sachen kaputtgegangen. Ich selbst hatte da auch Probleme (Single-Sign-On bzw. NTLM-Authentifizierung bei SOAP-Services innerhalb eines Windowsnetzwerks).

Worauf ich hinauswill: da es ja auch keine anderen passenden Events gibt (OnException oder so) und auch keine eigene Exception-Klasse mit weiteren Infos, würde ich das mal im Quality-Portal als Problem melden. Entweder sie fixen es, sodass das AfterExecute wieder ausgelöst wird, oder es müsste ein OnException oder so eingebaut werden.

Ggf. müsstest du dir bis dahin selber mal den Code in den SOAP-Bibliotheken anschauen, eine lokale Kopie der Unit erstellen und das wieder ergänzen, falls du die passende Stelle findest. Klingt nicht schön, könnte aber auch helfen, wenn du im QP direkt das Problem beschreiben kannst.
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
74 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: SOAP mit HTTPRIO – Fehlerbehandlung ab Delphi 10.3.3 RIO

  Alt 29. Jan 2020, 15:15
Vielen Dank. Lt. Emba-Support ist das Problem bekannt und soll mit der nächsten Hauptversion behoben werden.

Mit folgendem Code kann man sich erst mal behelfen und kommt im Falle eines Fehlers an den kompletten SOAPResponse heran:

Delphi-Quellcode:
uses
Soap.SOAPHTTPTrans;

procedure TForm2.FormCreate(Sender: TObject);
begin
Soap.SOAPHTTPTrans.SetOnHttpError(DoSOAPHttpError);
end;"

procedure TForm2.DoSOAPHttpError(const HTTPReqResp: THTTPReqResp; const HTTPResponse: IHTTPResponse; const Error: ESOAPHTTPException; var Action: TSOAPHttpErrorAction);
begin
//hier kann HTTPResponse komplett ausgewertet werden
if HTTPResponse.StatusCode = 500 then Action := heaSuccess;
end;
  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 06:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf