this is the HTTP header of the D6 client on a webservice.
When i use MS SOAP toolkit on this Same Service this is the Header
Content-Type: text/xml; charset="UTF-8"
Host: 127.0.0.1
SOAPAction: "urn:Example1#Divide"
Content-Length: 344
is there a way i can make the Borland SOAP 1.1 add this action to the
header?
--
Greetings Andre Mens
Yes. First, do not use the WSDL property of the HTTPRIO. Use the URL
property instead (which should be in the WSDL under the <address tag>)
Second, in your imported Delphi unit you will have a part in the
finalization section like
InvRegistry.RegisterInterface(TypeInfo(SomeInterface), '', '');
change it to
InvRegistry.RegisterInterface(TypeInfo(SomeInterface),
'urn:Example1#Divide', '');
(Use your interface instead of "SomeInterface" of course)
Frankly this kinda sucks. Why a URI should become a soap action (if you
don't use the WSDL) is beyond me. We should've had a soapaction
property...hey maybe we should write a derived class that does somethin like
that. Hmm...another to the list of "soap todo" :)
--
Deepak Shenoy
Agni Software
http://www.agnisoft.com
I've noticed that D6 SOAP doesn't create a SOAPAction header if the <port>
binding attribute has a namespace specified, e.g.
<port name='myPort' binding='wsdlns:mySoapBinding' >
Removing the wsdlns here and in the <binding> and <operation> elements sorts
the problem....wsdlns may be referred to as 'tns' in other WSDL though.
Incidentally, this appears to allow a D6 client to talk to a web service
exposed through the MS SOAP Toolkit 2.
HTH
--Craig
Easy S.O.A.P. The crossplatform Delphi SOAP Engine
www.rapware.com
an...@rapware.com
QReport Artist report designer
www.mensand.com
an...@mensand.com