Toon posts:

Python & WSDL

Pagina: 1
Acties:

Onderwerpen


  • Anoniem: 241683
  • Registratie: november 2007
  • Niet online
Ik heb een probleem met het praten met mijn soap-server met python.

Ik probeer al een tijd key, value pairs te krijgen in python alleen lukt dit niet.

Wanneer ik met php bepaalde functies aanroep krijg ik deze output
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:xmethods-delayed-quotes" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="link_2_wsdl" xmlns:ns3="http://xml.apache.org/xml-soap" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
        <ns1:testFunction>
                <tns:StringArray SOAP-ENC:arrayType="xsd:string[2]" xsi:type="ns2:StringArray">
                        <item xsi:type="xsd:string">user</item>
                        <item xsi:type="xsd:string">pass</item>
                </tns:StringArray>
               
                <xsd:anyType xsi:type="ns3:Map">
                        <item>
                                <key xsi:type="xsd:string">info</key>
                                <value xsi:type="xsd:int">1</value>
                        </item>
                </xsd:anyType>
        </ns1:testFunction>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


Hierbij roep ik de functie op deze manier aan:

PHP:
1
$client->testFunction(array('user', 'pass'), array('info' => 1));


En dit komt prima over.
Alleen wanneer ik python gebruik en daar een 'dictionary' gebruik krijg ik andere output

XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:ns3="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:xmethods-delayed-quotes" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns4="link2_wsdl" xmlns:ns5="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <SOAP-ENV:Header/>
   <ns2:Body>
      <ns1:testFunction>
         <tns:StringArray xsi:type="ns4:StringArray">
            <value xsi:type="ns3:string">user</value>
            <value xsi:type="ns3:string">pass</value>
         </tns:StringArray>
         <xsd:anyType xsi:type="ns0:xsd:anyType">
            <info xsi:type="ns3:int">1</info>
         </xsd:anyType>
      </ns1:testFunction>
   </ns2:Body>
</SOAP-ENV:Envelope>


Python:
1
2
3
4
5
login = c.factory.create("StringArray")
login.value = ['user', 'pass']

x = {'info' : 1}
client.service.testFunction(login, x)


Ik probeer met python al een tijdje een map aan te maken zodat er op de manier van php een soap-envelope verstuurd kan worden, alleen ik krijg het maar niet voor elkaar. 8)7

Ik heb in de wsdl de StringArray al wel gebruikt en deze werkt goed, alleen een map aanmaken lukt niet niet.


De server is geschreven in php. Het connecten met de soap-server doe ik met suds


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee