1

I'm trying to write a SOAPpy client to my C# WebService. It is arriving as null :(

How can I get any debug from the C# SOAP parser that WebService uses?

This is what Python sends:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
 SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
 xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
 xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
 xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
 xmlns:xsd="http://www.w3.org/1999/XMLSchema"
>                    
 <SOAP-ENV:Body>
  <ns1:UpdateSession xmlns:ns1="http://www.xlogic.pl/SENACA" SOAP-ENC:root="1">
   <xsd:Session>        
    <ID xsi:type="xsd:int">420</ID>
    <RecordCreationTime SOAP-ENC:arrayType="xsd:ur-type[6]" xsi:type="SOAP-ENC:Array"> 
     <item xsi:type="xsd:int">2010</item>
     <item xsi:type="xsd:int">8</item> 
     <item xsi:type="xsd:int">17</item>
     <item xsi:type="xsd:int">11</item> 
     <item xsi:type="xsd:int">13</item> 
     <item xsi:type="xsd:double">21.0</item>
    </RecordCreationTime>
    <ASP_SessionID xsi:type="xsd:string">92072674A04CB88D62776EA7</ASP_SessionID>
    <LangID xsi:type="xsd:string">fr-FR</LangID>
    <OneTimeKey xsi:type="xsd:string">a334cea18e014f4d8d04</OneTimeKey> 
   </xsd:Session>  
  </ns1:UpdateSession>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

This is what C# expects

<?xml version="1.0" encoding="utf-16"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
      xmlns:tns="http://www.xlogic.pl/SENACA"
      xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <tns:UpdateSession>
      <s href="#id1"/>
    </tns:UpdateSession>
    <tns:Session id="id1" xsi:type="tns:Session">
      <ID xsi:type="xsd:int">int</ID>
      <RecordCreationTime
            xsi:type="xsd:dateTime">dateTime</RecordCreationTime>
      <ASP_SessionID xsi:type="xsd:string">string</ASP_SessionID>
      <LangID xsi:type="xsd:string">string</LangID>
      <OneTimeKey xsi:type="xsd:string">string</OneTimeKey>
    </tns:Session>
  </soap:Body>
</soap:Envelope>
qdot
  • 6,195
  • 5
  • 44
  • 95
  • 1
    I have some some .Net web services and I have never had anyone consume them properly with SOAPpy (including some very very smart python devs). Everyone ended up not using SOAPpy and switched to hand crafting the XML and just sending simple HTTP requests. – ryber Aug 30 '10 at 22:56
  • I've written a small wrapper, linked in my answer below, that allows me to properly consume .Net webservices. – sfossen Oct 20 '10 at 15:31

1 Answers1

0

Not a Python answer, but soapUI is a very useful facility for debugging and automated testing of web services. I used it heavily on a C# WCF project, with a variety of clients, including Python, Boo, Java, and C#.

PaulMcG
  • 62,419
  • 16
  • 94
  • 130