AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi SOAP Client und verschachtelte Namespaces
Thema durchsuchen
Ansicht
Themen-Optionen

SOAP Client und verschachtelte Namespaces

Ein Thema von ASKtec · begonnen am 6. Mär 2012 · letzter Beitrag vom 18. Jun 2012
 
ASKtec

Registriert seit: 19. Okt 2007
38 Beiträge
 
#1

SOAP Client und verschachtelte Namespaces

  Alt 6. Mär 2012, 00:21
Hallo zusammen,

ich beschäftige mich gerade mit einem SOAP Client. Ich habe von dem Webservice Anbieter eine WSDL-Datei bekommen, die ich mit dem WSDL-Importer importiert habe. Es will mir aber nicht gelingen vernünftig mit dem Server zu kommunizieren, da der Namespace beim erzeugen der Klassen richtig gesetzt wird.

Ich habe es sowohl mit Delphi 2007 als auch mit XE2 probiert, wobei letzters schon besser funktioniert...

Hier mal ein Ausschnitt, wie die SOAP-Message aussehen soll:
Delphi-Quellcode:
<soapenv:Header>
       <cis:Authentification>
          <cis:user>maxmuster</cis:user>
          <cis:signature>MusterPr00fi1971</cis:signature>
          <cis:type>0</cis:type>
       </cis:Authentification>
       <de:DeveloperAuthentification>
          <DEVID>musterdev</DEVID>
          <APPID>musterapp</APPID>
          <CERTID>mustercert</CERTID>
       </de:DeveloperAuthentification>
    </soapenv:Header>
<soapenv:Body>
<de:CreateRequest>
          <cis:Version>
             <cis:majorRelease>1</cis:majorRelease>
             <cis:minorRelease>0</cis:minorRelease>
          </cis:Version>
Wenn ich das nun mit der importierten WSDL-Datei erstelle kommt bei Delphi XE2 folgendes raus:

Delphi-Quellcode:
<SOAP-ENV:Header>
     <NS1:AuthentificationType xmlns:NS1="http://xxx.de/webservice/cisbase">
        <user xmlns="http://xxx.de/webservice/cisbase">maxmuster</user>
        <signature xmlns="http://xxx.de/webservice/cisbase">MusterPr00fi1971</signature>
        <type xmlns="http://xxx.de/webservice/cisbase">0</type>
     </NS1:AuthentificationType>
     <NS2:DeveloperAuthentification xmlns:NS2="http://de.ws.xxxx">
       <DEVID>musterdev</DEVID>
       <APPID>musterapp</APPID>
       <CERTID>mustercert</CERTID>
     </NS2:DeveloperAuthentification>
   </SOAP-ENV:Header>
   <SOAP-ENV:Body>
      <CreateRequest xmlns="http://de.ws.xxxx">
        <Version xmlns="http://xxx.de/webservice/cisbase">
          <majorRelease>1</majorRelease>
          <minorRelease>0</minorRelease>
        </Version>
Hier ist definitiv das xmlns="" zuviel und die Erweiterung cis: und de: zuwenig. Der SOAP-Server nimmt mit der Delphi-Variante die Daten nicht an, die anderen schon...

Hat hier schoneimal jemand sowas umgesetzt und kann mir sagen was ich falsch mache? Ich könnte zwar in dem HTTPRIO1.BeforeExecute alles mit StringReplace ersetzen, aber das kann ja nicht Sinn der Sache sein, oder?

Für Eure Hilfe bedanke ich mich im voraus.

VG
Andreas
  Mit Zitat antworten Zitat
 


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 02:47 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 by Thomas Breitkreuz