How to Send Array String in Zeep

Viewed 32

I have this below soap envelope where I have send string array.

  <apiKey xsi:type="xsd:string">Ab12-Ab12-Ab12-Ab12</apiKey>§
     <baseScheduleRollout xsi:type="flex:baseScheduleRollout" xmlns:flex="http://app.quinyx.com/soap/FlexForce">
        <badgeNos xsi:type="flex:ArrayOfString" soapenc:arrayType="xsd:string[]">
            <item1>1022</item1>
            <item2>1030</item2>
            <item2>10112330</item2>
        </badgeNos>
        <fromDateTime xsi:type="xsd:dateTime">2020-11-05T00:00:00</fromDateTime>
        <toDateTime xsi:type="xsd:dateTime">2020-11-24T00:00:00</toDateTime>

I know how to send a soap request and my complextype is okay. But I think my string array passing system is wrong. Though I tried to use anyObject but still not working

from zeep import Client
from zeep import xsd
import datetime
from requests import Session
from requests.auth import HTTPBasicAuth
from zeep.transports import Transport

wsdl = "https://api.quinyx.com/FlexForceWebServices.php?wsdl"

session = Session()
session.auth = HTTPBasicAuth('username', 'password')
client = Client(wsdl, transport=Transport(session=session))

ArrayOfString = client.get_element('ns0:ArrayOfObject')
badgeNo = ArrayOfString(['146223'])


data = { "apiKey" : "apikey" , 
         "baseScheduleRollout" :{
                                "badgeNos":badgeNo,
                                "fromDateTime":xsd.SkipValue,
                                "toDateTime":xsd.SkipValue
                               }
       }
result = client.service.wsdlGetBaseScheduleRolledoutHours(**data)
result

Error

LookupError: No element 'ArrayOfObject' in namespace https://api.quinyx.com/soap/FlexForce. Available elements are: -

0 Answers
Related