2

我正在使用一个 SOAP 服务,该服务具有用前导下划线定义的变量(假设是私有的,但文档中有必须使用它们的特定示例)。在 WSDL 中,它看起来像这样:

<xsd:element maxOccurs="1" minOccurs="0" name="__encoded_query" type="xsd:string"/>

通过一些实验,我已经确定,在我的 client.service 调用中使用命名参数,我可以正常分配变量,除了具有前导下划线的变量。

例如:

client.service.getRecords( name='server1' )

生成正确的 XML:

<ns1:getRecords>
  <name>server1</name>
</ns1:getRecords>

但如果我尝试使用带下划线的参数:

client.service.getRecords( __encoded_query='name=server1' )

生成的 XML 根本不包含参数:

<ns1:getRecords/>

我不确定这是否是我不熟悉的语法细微差别(Python 或 suds),或者可能是 suds 试图通过基于私有变量约定保护变量来“聪明”。无论如何,这是使用此 Web 服务的记录方式,因此我需要弄清楚如何获得 suds 以生成包含__encoded_query块的 XML。

4

1 回答 1

1

这不是你的错,这是一个记录在案的泡沫问题

于 2012-09-27T11:40:10.170 回答