如何使用SUDS在soap请求中创建一个空数组

时间:2014-09-26 14:27:19

标签: python soap suds

我正在制作的SOAP请求需要一个字符串数组,对于某些请求,它应该是空的。 XML应该如下所示(在SoapUI中创建):

<ns0:instanceNames>
<!--Zero or more repetitions:--> 
</ns0:instanceNames>

所以我尝试用这样的SUDS制作那个xml元素:

instanceNames = client.factory.create('ns2:ArrayOfstring')
instanceNames.string = []
result = client.service.GetStuff(instanceNames=instanceNames)

但是当我发送请求时,元素根本就不存在于XML中。没有标签,因此我的请求失败。

但是,如果我添加单个元素,即使是空字符串,也会显示周围的数组标记并且请求成功。例如:

instanceNames = client.factory.create('ns2:ArrayOfstring')
instanceNames.string = [""]

产生

<ns0:instanceNames>
<ns1:string></ns1:string>
</ns0:instanceNames>

但我宁愿没有那个空洞的内心元素。

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

原来我错过了一些东西:

instanceNames.string = [None]

甚至:

instanceNames.string.append(None)