Many thanks for the pointers, it looks like this is our issue:
RPC|Encoded vs. Document|Literal
The biggest problem in interoperability is the fact that some servers use
Document|Literal encoding, which most others use RPC|Encoded. Delphi servers
only understand RPC|Encoded packages, but Delphi Clients can talk to both
RPC|Encoded and Document|Literal servers.
To communicate with a Doc|Lit server (Most .NET web services are doc|lit)
you must set HTTPRio1.Converter.Options.soLiteralParams to true. This
ensures that parameters encoded with "literal" are not unwound, which is
necessary in doc|lit cases where a parameter name might be encapsulated
under a sub tag under the XML element representing the function.
I'll try to post some indication of what we did if that fixes it.
Cheers
Stuart
"Deepak Shenoy" <no****@nonname.com> wrote in message
news:uD**************@TK2MSFTNGP02.phx.gbl...
Stuart Irving wrote:
Hi,
I've written a web service in C#/ .NET that is called by clients
written in Delphi (we don't do Delphi any more) Using a .NET test
harness the service works, but when called by a Delphi client all the
input parameters arrive as null, empty string or 0.
I wonder if the Delphi components are producing invalid XML, but I
need to view the request...
Please can anyone tell me how I can intercept a SOAP request and view
the XML.
Check out:
http://msdn.microsoft.com/library/de.../en-us/cpref/h
tml/frlrfsystemwebservicesprotocolssoapextensionclasst opic.asp
(URL Wraps. Or use http://tinyurl.com/empf)
Just dress your method with a [Trace( FileName="<enter filename
here">)] attribute and the request + response will be saved to the
file. This applies only to the Request or Response XML, not the HTTP
headers.
I've a bit of experience in Delphi SOAP as well, let me know what you
receive - perhaps a change has to be made in the Delphi code.
--
Deepak Shenoy
http://shenoyatwork.blogspot.com