作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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”的网络服务
示例:
findcriteria = {
'Criteria' : [{
'ColumnName' : 'Closed',
'Value' : 0
},
{
'ColumnName' : 'AssignToQueueID',
'Value' : queueid
},
{
'ColumnName' : 'SupportCallType',
'Value' : 'I'
}
]
}
调用服务:
打印 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" />
最佳答案
我遇到了类似的问题,并且设法解决了它,但为了帮助您,我需要一个正确的 XML 示例(它应该是什么样子),或者至少需要一个使用 SoapUI 生成的默认请求。
与此同时,也许下面的代码可以帮助您:这里复杂的参数是凭据,它由 2 个登录项组成:登录名和域。
<soap-env:Envelope xmlns:ns1="http://xml.kamsoft.pl/ws/kaas/login_types"
xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Body>
<ns1:login>
<ns1:credentials>
<ns1:item>
<ns1:name>login</ns1:name>
<ns1:value>
<ns1:stringValue>login_here</ns1:stringValue>
</ns1:value>
</ns1:item>
<ns1:item>
<ns1:name>domain</ns1:name>
<ns1:value>
<ns1:stringValue>domain_here</ns1:stringValue>
</ns1:value>
</ns1:item>
</ns1:credentials>
<ns1:password>password_here</ns1:password>
</ns1:login>
</soap-env:Body>
</soap-env:Envelope>
下面是生成此 XML 的代码:
domain = "domain_here"
login = "login_here"
password = "password_here"
credentials = {"item": [{"name": "login", 'value': {"stringValue": login}},
{"name": "domain", 'value': {"stringValue": domain}}]}
client.service.login(credentials=credentials, password=password)
关于python - 如何处理pythonsoap模块zeep中的complexType参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38539568/
我是一名优秀的程序员,十分优秀!