Zeep文档示例:
from zeep import Client
client = Client('http://my-enterprise-endpoint.com')
client.service.submit_order(user_id=1, order={
'number': '1234',
'price': 99,
})
我的用例:
我想调用需要参数“findCriteria”的webservice
示例:
^{pr2}$调用服务:
打印client.service.GetCount(findCriteria=findCriteria)
这是创建的XML:
在 在
<soap-env:Body>
<ns1:GetCount>
<ns1:findCriteria/>
</ns1:GetCount>
</soap-env:Body>
</soap-env:Envelope>
问题:
尽管服务返回计数,但不应用条件。在
当我向服务提供原始XML负载时,结果是正常的。在
问题出在<ns1:findCriteria/>
部分。在
对于每个列,应该创建一个Criteria元素。在
WSDL上grep GetCount的结果:
<s:element name="GetCount">
<s:element name="GetCountResponse">
<s:element minOccurs="1" maxOccurs="1" name="GetCountResult" type="s:int" />
<wsdl:message name="GetCountSoapIn">
<wsdl:part name="parameters" element="tns:GetCount" />
<wsdl:message name="GetCountSoapOut">
<wsdl:part name="parameters" element="tns:GetCountResponse" />
<wsdl:operation name="GetCount">
<wsdl:input message="tns:GetCountSoapIn" />
<wsdl:output message="tns:GetCountSoapOut" />
<wsdl:operation name="GetCount">
<soap:operation soapAction="http://<server>/webservices/SupportCall/GetCount" style="document" />
<wsdl:operation name="GetCount">
<soap12:operation soapAction="http://<server>/webservices/SupportCall/GetCount" style="document" />
使用以下命令检查wsdl:
python -mzeep <wsdl>
您将在输出中找到服务的详细信息:
ns1:GetCount(FindCriteria:findCriteria)
基于上述检验输出的样本代码:
如果XML是这样的:
^{pr2}$创建对象时需要传递参数:
当我运行以下命令时:
结果是:
^{pr2}$看起来是对的。但是,当我使用以下命令运行获取值的请求时:
我获取:-在
与通过相同:
我遇到了一个类似的问题,我设法解决了它,但是为了帮助您,我需要一个正确的XML示例(它应该是什么样子),或者至少需要一个使用SoapUI生成的默认请求。在
同时,下面的代码可能会对您有所帮助: 这里复杂的参数是凭证,它包括两个登录项,登录名和域。在
下面是生成此XML的代码:
^{pr2}$相关问题 更多 >
编程相关推荐