![]() |
Delphi-Version: 10 Berlin
SOAP Webservice in Delphi?
Hallo Zusammen,
ich versuche mich aktuell an der Implementierung eines SOAP Clients in Delphi. Die wenige offizielle Hilfe von Embarcadero lässt bereits schlimmes vermuten, aber ich bin noch optimistisch das ich einfach die ganze tolle Magie in Delphi noch nicht gefunden habe. Wie in der Delphi Hilfe steht, habe ich die benötigte WSDL Importiert und die erste Anfrage abgesendet, scheint ja genauso einfach zu sein wie in Java. Leider hat es nicht ansatzweise Funktioniert, die komplette Policy Deklaration der WSDL wurde ignoriert. Weder kam ein Fehler das eine Signatur nicht möglich ist, noch wurde der geforderte Timestamp oder Empfänger hinzugefügt, es war eine einfache nackte Anfrage. Auf Anhieb habe ich auch keine vorgesehene Möglichkeit gefunden um die benötigten Punkte auszukonfigurieren. Es gibt nur die Basisklasse TSOAPHeader, keine einzige Ableitung davon. Es kann aber doch nicht sein das ich mich jetzt selber darum kümmern muss. |
AW: SOAP Webservice in Delphi?
Ich hatte bisher keine Probleme mit Delphi als SOAP Client. Welche konkrete Fehlermeldung bekommst Du? Oder was genau geht nicht?
Sherlock |
AW: SOAP Webservice in Delphi?
Zitat:
|
AW: SOAP Webservice in Delphi?
Hallo,
zeig uns doch mal die WSDL, Delphi hat in der Tat bei komplizierteren Strukturen Importprobleme. |
AW: SOAP Webservice in Delphi?
Zitat:
Es geht um diesen allgemeinen Abschnitt der die Sicherheitsanforderungen des Webservices beschreibt:
Code:
<wsp:Policy>
<wsp:ExactlyOne> <wsp:All> <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> <wsp:Policy> <sp:TransportToken> <wsp:Policy> <sp:HttpsToken RequireClientCertificate="false"/> </wsp:Policy> </sp:TransportToken> <sp:AlgorithmSuite> <wsp:Policy> <sp:Basic256/> </wsp:Policy> </sp:AlgorithmSuite> <sp:Layout> <wsp:Policy> <sp:Strict/> </wsp:Policy> </sp:Layout> <sp:IncludeTimestamp/> </wsp:Policy> </sp:TransportBinding> <sp:EndorsingSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> <wsp:Policy> <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient"> <wsp:Policy> <sp:RequireThumbprintReference/> <sp:WssX509V3Token10/> </wsp:Policy> </sp:X509Token> <sp:SignedParts> <sp:Header Name="To" Namespace="http://www.w3.org/2005/08/addressing"/> </sp:SignedParts> </wsp:Policy> </sp:EndorsingSupportingTokens> <sp:Wss11 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> <wsp:Policy> <sp:MustSupportRefThumbprint/> </wsp:Policy> </sp:Wss11> <sp:Trust10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> <wsp:Policy> <sp:MustSupportIssuedTokens/> <sp:RequireClientEntropy/> <sp:RequireServerEntropy/> </wsp:Policy> </sp:Trust10> <wsaw:UsingAddressing/> </wsp:All> </wsp:ExactlyOne> </wsp:Policy> Meine Erwartung aus Java und C# wären das mein Client nach den Import der WSDL Datei fast vollständig konfiguriert ist. In diesen Beispiel würde nur noch die Nennung des Signaturzertifikats fehlen. In Delphi passiert jedoch nichts, es wird kein einziger geforderte SOAP Header mitgeschickt wie z.B. der Timestamp:
Code:
Es geht mir nicht um den SOAP Body, der wird richtig erzeugt.<wsu:Timestamp wsu:Id="TS-59e35d1a-97e3-45c0-a6e5-850e107005b4"> <wsu:Created>2017-12-19T13:57:53.340Z</wsu:Created> <wsu:Expires>2017-12-19T14:02:53.340Z</wsu:Expires> </wsu:Timestamp> |
AW: SOAP Webservice in Delphi?
WS-Security wird nicht vom WsdlImporter unterstützt.
|
AW: SOAP Webservice in Delphi?
Zitat:
Soweit ich das überblicke wird es nicht nur vom Importer nicht unterstützt, er wird überhaupt in keinster Weise von Delphi unterstützt? Benötige ich einen Security Header, muss ich TSOAPHeader ableiten und einen eigenen Konverter schreiben. Eine Kryptobibliothek wird scheinbar auch nicht mitgeliefert, das bedeutet selbst wenn man sich diese absolut unnötige arbeit antun möchte würde man an diesen Punkt ebenfalls scheitern. Wenn sich das wirklich so verhält bin ich ziemlich Fassungslos, wofür bezahlt man solch tierische Lizenzkosten... |
AW: SOAP Webservice in Delphi?
Hilft ja nichts.
![]() |
AW: SOAP Webservice in Delphi?
Zitat:
In den letzten Tagen habe ich noch die Clever Internet Suite ausprobiert. Die konnte zumindest bis auf eine WSS-Anforderung alle erfüllen. Das einzige was nicht ging, war das einbinden des Zertifikats in die SOAP Nachricht. Nachträglich einfügen zerstört jedoch die Signatur, damit macht dieser eine Punkt wieder alles zunichte. |
AW: SOAP Webservice in Delphi?
Zitat:
Aber müsste nicht Windows einen Importer haben, um aus einer SOAP-Schnittstelle ein COM-Interface zu erstellen das du dann nutzen kannst. Leider kann ich dir keine weitern Infos dazu geben, da im Delphi-Umfeld mir SOAP seit langen nicht mehr begegnet ist (Hätte es vor Jahren mal gebraucht - hat sich dann aber anderweitig erledigt) Zitat:
Viele Firmen verlassen den SOAP-Weg (u.a. wegen der Komplexität u.a. bei Sicherheitsanforderungen) und wechseln auf REST/JSON und Co. Schau mal nach ob es für deine Anforderung auch diese moderner Schnittstelle gibt? Zitat:
![]() Wir setzen von IPWorks die Komponenten für http(s)/ftp(s) ein und sind sehr zufrieden damit. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz