【发布时间】:2022-06-17 00:19:59
【问题描述】:
请不要只链接到文档:https://docs.python-zeep.org/en/master/in_depth.html
如果我还没有用尽我对文档的理解,我就不会在这里发帖。
这是我正在使用的 WSDL:http://sprws.sprich.com/sprws/StockCheck.php?wsdl 使用 SoapUI,输入看起来像这样:
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:stoc="http://sprws.sprich.com/sprws/StockCheck.php?wsdl">
<soapenv:Header/>
<soapenv:Body>
<stoc:StockCheck soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<input xsi:type="stoc:StockCheckInputs">
<!--You may enter the following 10 items in any order-->
<GroupCode xsi:type="xsd:string">[Removed]</GroupCode>
<UserID xsi:type="xsd:string">[Removed]</UserID>
<Password xsi:type="xsd:string">[Removed]</Password>
<Action xsi:type="xsd:string">F</Action>
<CustNumber xsi:type="xsd:string"></CustNumber>
<DcNumber xsi:type="xsd:string"></DcNumber>
<ItemNumber xsi:type="xsd:string">HAM105007CT</ItemNumber>
<SortBy xsi:type="xsd:string">A</SortBy>
<MinInFullPacks xsi:type="xsd:string"></MinInFullPacks>
<AvailableOnly xsi:type="xsd:string">Y</AvailableOnly>
</input>
</stoc:StockCheck>
</soapenv:Body>
</soapenv:Envelope>
如何在 Python 中重新创建它?我对 SOAP 的经验很少。
到目前为止,我有:
from zeep import Client
from zeep import xsd
client = Client(wsdl='http://sprws.sprich.com/sprws/StockCheck.php?wsdl')
result = client.service.StockCheck(GroupCode='[Removed]', UserID='[Removed]', Password='[Removed]', ItemNumber='HAM105007CT', Action='F', SortBy='A')
print(result)
任何帮助将不胜感激。如果有更好的方法在 Pyhohn 中执行 SOAP 请求,请不要犹豫告诉我。我目前正在使用请求库来做许多其他事情。
我想要获取特定商品编号的库存。但是怎么不知道用来提交我的请求的语法。
【问题讨论】:
-
如果你运行
python -mzeep http://sprws.sprich.com/sprws/StockCheck.php?wsdlStockCheck 方法,你会得到什么方法签名? WSDL 链接没有为我打开。 -
奇怪的是它不会打开。我第一次运行 -mzeep 时遇到错误,然后它才开始工作。我也使用“请求”库进行这项工作,即使我得到了我需要的数据,我也得到了 500 响应?
-
在这种情况下,我不确定您所说的“方法签名”是什么意思。我假设您的意思是列出了哪些“服务”。服务:StockCheck 端口:StockCheckPort (Soap11Binding: {sprws.sprich.com/sprwas/StockCheck.php?wsdl}StockCheckBinding) 操作:StockCheck(input: ns0:StockCheckInputs) -> 返回:ns0:StockCheckRsults