我正试图使用Zeep模块来访问SOAP协议,但是我认为WSDL文档缺少一些东西,因此我不能确切地理解该方法所期望的参数是什么。。。你知道吗
以下是WSDL的相关部分,以及我尝试使用的方法:
<s:element name="EnviaSMSDataSet">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="NumUsu" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Senha" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="DS">
<s:complexType>
<s:sequence>
<s:element ref="s:schema"/>
<s:any/>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
我这样称呼这个方法:
client.service.EnviaSMSDataSet(NumUsu=<username>, Senha=<password>, DS=<?>)
但是我不知道应该在DS参数中加什么!你知道吗
如果省略参数,Python会告诉我:
zeep.exceptions.Fault: Server was unable to process request. ---> Object reference not set to an instance of an object.
如果我写的不是DS keyarg,Python会给我这个错误:
TypeError: {https://www.twwwireless.com.br/reluzcap/wsreluzcap}EnviaSMSDataSet() got an unexpected keyword argument 'test'. Signature: `NumUsu: xsd:string, Senha: xsd:string, DS: {schema: , _value_1: ANY}`
如果我将一个空字典传递给DS keyarg,Python会引发以下错误:
AttributeError: 'Schema' object has no attribute 'min_occurs'
如果我试图在它里面写一些东西,Python会产生另一个错误:
AttributeError: 'Schema' object has no attribute 'render'
Zeep显然也有一种收集复杂类型的方法(client.get\u类型()),但我不知道是否有这样的类型。。。?你知道吗
我已经联系了此服务的支持人员,他们给了我一个有效请求的示例,但我无法正确理解:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<EnviaSMSDataSet xmlns="https://www.twwwireless.com.br/reluzcap/wsreluzcap">
<NumUsu>LOGIN</NumUsu>
<Senha>SENHA</Senha>
<DS>
<xs:schema id="myDataSet"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="myDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="enviaSMSDataset">
<xs:complexType>
<xs:sequence>
<xs:element name="seunum" type="xs:string"minOccurs="0"/>
<xs:element name="celular" type="xs:string"minOccurs="0"/>
<xs:element name="mensagem" type="xs:string"minOccurs="0"/>
<xs:element name="agendamento" type="xs:dateTime"minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<myDataSet>
<enviaSMSDataset diffgr:id="enviaSMSDataset1" msdata:rowOrder="1">
<seunum xml:space="preserve">saass</seunum>
<celular>5511999999999</celular>
<mensagem>Olá Mundo</mensagem>
<agendamento>2013-02-22T08:22:54</agendamento>
</enviaSMSDataset>
<enviaSMSDataset diffgr:id="enviaSMSDataset2" msdata:rowOrder="2">
<seunum xml:space="preserve">asdd</seunum>
<celular>5511999999991</celular>
<mensagem>Olá Mundo</mensagem>
<agendamento>2013-02-22T08:22:54</agendamento>
</enviaSMSDataset>
</myDataSet>
</diffgr:diffgram>
</DS>
</EnviaSMSDataSet>
</soap:Body>
</soap:Envelope>
如果缺少一些解释或任何东西,我很乐意提供!你知道吗
(This是完整的WSDL文档,如果它有帮助的话,顺便说一下!)你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐