SOAP and .NET: <env: vs <soap:

N

Nick Gauthier

I am interacting with a client's SOAP interface, and they provided me
with a WSDL however the create_rpc_driver method doesn't get it quite
right.

Thanks to input on these forums I've *almost* got it right.

Here is my code:
@soap = SOAP::RPC::Driver.new(SOAP_URL,NS,action)
@soap.wiredump_dev = STDOUT
@soap.add_document_method('getAllVideos',action,
[XSD::QName.new(NS,'getAllVideos')],
[XSD::QName.new(NS,'getAllVideosResult')])

I have to do it that way with the namespaces so they come out right for
NET (I think).

Here is my generated request:
POST [[snip]] HTTP/1.1
SOAPAction: "[[snip]]"
Content-Type: text/xml; charset=utf-8
User-Agent: SOAP4R/1.5.5 (/187, ruby 1.8.6 (2007-09-24) [x86_64-linux])
Date: Wed, 13 Feb 2008 16:17:51 GMT
Content-Length: 424
Host: 66.230.202.184

<?xml version="1.0" encoding="utf-8" ?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
<getAllVideos xmlns="[[snip]]">
<UserName>username</UserName>
<password>password</password>
</getAllVideos>
</env:Body>
</env:Envelope>

And the request I wish I had:
POST [[snip]] HTTP/1.1
Host: 66.230.202.184
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "[[snip]]"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getAllVideos xmlns="[[snip]]">
<UserName>username</UserName>
<password>password</password>
</getAllVideos>
</soap:Body>
</soap:Envelope>

The ONLY difference is that ruby namespaced the envelope and body as
"env" while the client uses "soap".

I am told that this does not matter for soap, but this is the only
difference. If it truly does not matter then I will have to blame my
client, and in that case I want to be absolutely sure that I am right.

By the way, the error on the client side is that one of the variables is
nil. I am guessing this is because he searches for an xml node named
"soap:Envelope" or something.

Thanks.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,564
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top