更改SOAP主体以进行python suds调用

时间:2018-07-17 18:47:25

标签: python soap suds choice

我们有一个项目正在使用suds进行某些SOAP调用,直到今天我发现suds并未从导入的wsdl中解析出“ choice”对象时,该项目一直运行良好。有了这些信息,我一直在尝试寻找一种方法来注入使调用成功所需的xml

我这样打电话给suds客户

self.client.service.retrieveService()

suds正在向此样式调用

    <SOAP-ENV:Envelope
      <SOAP-ENV:Header>
        <tns:wsHeader>
          <wss>
            <userName>xxx</userName>
            <password>xxx</password>
          </wss>
          <messageType/>
       </tns:wsHeader>
     </SOAP-ENV:Header>
     <ns1:Body>
       <ns0:retrieveServiceRequest/>
     </ns1:Body>
   </SOAP-ENV:Envelope>

我已经使用suds工厂和wsdl来创建正确的输入,但是我不知道如何将这样的内容传递给客户端以用于主体:

   (retrieveServiceRequest){
     serialNumberWrapper =
      (serialNumberWrapper){
         serialNumber = "1234567890"
      }
   }

注意:我也尝试过创建自己的xml并使用__inject,但是suds似乎没有做任何事情或没有给出任何反馈(self.client.last_sent()返回None)。我可以提供正确地从wsdl中检索到的唯一参数作为客户端调用,并将其添加到suds调用中。

这时任何建议都将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:0)

因此,由于它阻止了一些错误修复,因此我继续进行此工作。将suds替换为suds_jurko,这只是一个仍在维护的叉子。