2010-08-30 4 views
1

J'essaye d'écrire un client SOAPpy sur mon WebService C#. Il arrive comme nul :(SOAPpy, C# et passage d'objet

Comment puis-je obtenir de débogage du C# analyseur SOAP WebService utilise

C'est ce que Python envoie:

<?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> 

C'est ce que C# attend

<?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> 
+1

J'ai quelques services web .Net et je n'ai jamais eu quelqu'un les consommer correctement avec SOAPpy (y compris certains développeurs Python très très intelligent). Tout le monde a fini par ne pas utiliser SOAPpy et est passé à la fabrication manuelle du XML et à l'envoi de simples requêtes HTTP. – ryber

+0

J'ai écrit un petit emballage, lié dans ma réponse ci-dessous, qui me permet de consommer correctement les services web .Net. – sfossen

Répondre

0

Pas une réponse Python, mais soapUI est une fonction très utile pour le débogage et le test automatisé des services Web.Je l'ai beaucoup utilisé sur un projet C# WCF, avec av une multitude de clients, y compris Python, Boo, Java et C#.