如何解决SOAP 调用中的 ArrayOfArrayOfString 与 Python 中的 zeep
我正在尝试调用soap网络服务。
https://api.accounting.twinfield.com//webservices/finder.asmx?wsdl
它以 ArrayOfArrayOfString 作为参数。当我对其执行 get_type 时,
emptyArrayPlaceholder = proces2.get_type("ns0:ArrayOfArrayOfString")
options1 = emptyArrayPlaceholder()
print(options1)
给予
{
'ArrayOfString': []
}
我尝试了几种组合,但似乎找不到合适的组合。
EmptyString = proces2.get_type('ns0:ArrayOfString')
emptyArrayPlaceholder = proces2.get_type("ns0:ArrayOfArrayOfString")
options1 = EmptyString()
print(options1)
options2= EmptyString()
print(options1)
options1['string'].append('office')
options1['string'].append('072')
options2['string'].append('dimtype')
options2['string'].append('DEB')
options4 = emptyArrayPlaceholder()
options5 = emptyArrayPlaceholder()
options4['ArrayOfString'].append(options1)
options5['ArrayOfString'].append(options2)
options6 = emptyArrayPlaceholder()
options6['ArrayOfString'].append(options4)
options6['ArrayOfString'].append(options5)
options7 =[options4,options5]
print(options6)
responz = proces2.service.Search(type = "DIM",field = 0,firstRow = 1,maxRows = 0,options = options7,_soapheaders={'Header': header_value})
我已经尝试过使用这些选项中的任何一个。正确的 xml 调用如下所示:
<Search xmlns="http://www.twinfield.com/">
<type>DIM</type>
<pattern>*</pattern>
<field>0</field>
<firstRow>1</firstRow>
<maxRows>0</maxRows>
<options>
<ArrayOfString>
<string>office</string>
<string>072</string>
</ArrayOfString>
<ArrayOfString>
<string>dimtype</string>
<string>PNL</string>
</ArrayOfString>
</options>
</Search>''
有什么想法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。