AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein HTTPRIO: NS-Prefix in Request unterdrücken
Thema durchsuchen
Ansicht
Themen-Optionen

HTTPRIO: NS-Prefix in Request unterdrücken

Ein Thema von Nic2012 · begonnen am 6. Mai 2013 · letzter Beitrag vom 7. Mai 2013
Antwort Antwort
Nic2012

Registriert seit: 2. Mai 2012
62 Beiträge
 
#1

HTTPRIO: NS-Prefix in Request unterdrücken

  Alt 6. Mai 2013, 17:46
Benutze unter D7 THTTPRIO um einen externen Webservice (asmx via https) zu konsumieren. Im Request wird allerdings ein Namespace-Prefix NS1: vorgestellt, dass beim Server abgelehnt und nicht verarbeitet werden kann.

Hier das (vereinfachte) Request:
Code:
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
   <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <NS1:Node xmlns:NS1="http://.../">
         <.../>
      </NS1:Node>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Was mich etwas stutzig macht ist, dass in der WSDL noch steht
Code:
<s:import namespace="http://.../" />
Hat der Tag etwas damit zu tun ?
Bzw. welche der HTTPRIO Options ermöglicht, den Prefix zu unterdücken ?

Gruß,
Nic
Miniaturansicht angehängter Grafiken
clipboard01.png  
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: HTTPRIO: NS-Prefix in Request unterdrücken

  Alt 6. Mai 2013, 18:05
Hallo,

das ist ne gute Frage und da gibt es sicherlich einige, die sich für die Lösung interessieren würden .

Nach meinem Kenntnistand gibts da keine Einstellmöglichkeiten. Am praktikabelsten ist es, HTTPRio.OnBeforeExecute zu nutzen und das erzeugte SOAP-XML mit Stringgreplace so zu ändern, bis es paßt. Wenn Du im Forum nach diesem Ereignis suchst, findest du auch Codebeispiele dazu.

Du kannst auch Programme wie SoapUI nutzen, um übertragene XML anzuzeigen, damit du siehst, wie es richtig aussehen müßte.

Ansonsten mal das Embarcadero-Forum durchsuchen https://forums.embarcadero.com/forum...mID=73&start=0
gugg hier auch seit langem wieder mal rein, es scheint so, daß JeanMarieBabet mal wieder etwas aktiver ist, da gibts auch mal wieder Antworten und Lösungen .

Das mit Delphi7 und Webservice so ne Sache, hier gab es auch extra Soap-patches, die einige Probleme behoben haben.

gruß Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#3

AW: HTTPRIO: NS-Prefix in Request unterdrücken

  Alt 6. Mai 2013, 18:06
Gibt es ein funktionierendes XML Beispiel (zum Beispiel in der Dokumentation des Webservice, oder per SoapUI erzeugt)? Damit könnte man nachvollziehen was Delphi 'falsch' macht.
Michael Justin
  Mit Zitat antworten Zitat
Nic2012

Registriert seit: 2. Mai 2012
62 Beiträge
 
#4

AW: HTTPRIO: NS-Prefix in Request unterdrücken

  Alt 7. Mai 2013, 15:21
Danke für die Unterstützung.
Wenn ich zur Laufzeit setzte
Code:
HTTPRIO.Converter.Options := HTTPRIO.Converter.Options + [soDocument]
bleiben die NS1 Prefixe im Request unterdrückt und die Anfrage wird jetzt vom Webservice problemlos angenommen.

Habe mir die OPToSoapDomConvert Unit genauer angeschaut und die dafür zuständige Methode InvContextToMsg benötigt das soDocument Flag.

Seltsam nur das ich dieses Flag im DFM eigentl. gesetzt hatte.
Miniaturansicht angehängter Grafiken
clipboard01.png  
  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 21: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