我在通过 Zeep 获取 SOAP 请求时遇到问题,收到(客户端)验证错误...我还使用 SoapUI 进行了测试,但这并没有给我相同的验证错误...
以下规范来自服务器...根据该规范,需要 OrderStatus 和 SynchStatus 来执行请求。
<soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/ xmlns:web="WebServiceProvider">
<soapenv:Header/>
<soapenv:Body>
<web:Order_Get>
<!--Optional:-->
<web:orderOptions>
<web:FromDate>?</web:FromDate>
<web:ToDate>?</web:ToDate>
<web:OrderStatus>?</web:OrderStatus>
<web:SynchStatus>?</web:SynchStatus>
<!--Optional:-->
<web:OrderNumber>?</web:OrderNumber>
<web:FromOrderNumberToLastRecieved>?</web:FromOrderNumberToLastRecieved>
<web:PaymentStatus>?</web:PaymentStatus>
</web:orderOptions>
</web:Order_Get>
</soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)
但是,从不带 OrderStatus 和 SynchStatus 的 SoapUI 执行此操作将为我提供指定日期的所有订单的列表:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="WebServiceProvider">
<soapenv:Header/>
<soapenv:Body>
<web:Order_Get>
<web:orderOptions>
<web:FromDate>2021-03-30</web:FromDate>
<web:ToDate>2021-03-31</web:ToDate>
</web:orderOptions>
</web:Order_Get>
</soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)
我想对 Zeep ( https://github.com/mvantellingen/python-zeep )做同样的事情,但客户端验证失败......
我使用以下代码发起请求:
api_url = 'https://abc.se/Webservice20/v3.0/webservice.asmx?WSDL'
session.auth = HTTPDigestAuth(username, password)
api = Client(api_url, transport=Transport(session=session))
Run Code Online (Sandbox Code Playgroud)
然后我尝试执行以下请求:
order_options = {
'FromDate': '2021-03-30',
'ToDate': '2021-03-31',
}
orders = …Run Code Online (Sandbox Code Playgroud) 我对 Django 很陌生。现在我正在开发一个包含约 30 个数据库表的原型。我知道,对于 Django,您最好希望拥有非常小的应用程序,并且模型数量有限。
我想在几个不同的应用程序中使用相同的模型(即数据库表)。实现这一目标的最佳实践是什么?我正在使用mysql。