繁体   English   中英

SOAP 请求 Zeep (Python)

[英]SOAP request with Zeep (Python)

我正在尝试使用 python 中的 zeep 模块发送 SOAP 请求。 python -mzeep XXXXXXXX.wsdl 返回以下内容:

前缀:

 xsd: http://www.AA.org/2003/XMLSchema
 ns0: http://www.bbbb.com/PM/BLS

全局元素:

 ns0:GetBalReq(header: ns0:RequestHeader, custId: xsd:string, customAvpList: ns0:AttributeValuePairList)
 ns0:GetBalResp(nalId: xsd:string, custId: xsd:string, custRole: xsd:string, nalType: xsd:string, bal: ns0:BalDetailsList, customAvpList: ns0:AttributeValuePairList)

全局类型:

 xsd:anyType
 ns0:AttributeValuePair(attribute: xsd:string, value: xsd:string)
 ns0:AttributeValuePairList(item: ns0:AttributeValuePair[])
 ns0:BalDetailsList(item: ns0:BalDetails[])
 ns0:RequestHeader(auditInfo: xsd:string, transactionId: xsd:string)
 xsd:string

绑定:

 Soap11Binding: {http://www.bbbb.com/PM/BLS}BLS

服务:BLS

 Port: BLS (Soap11Binding: {http://www.bbbb.com/PM/BLS}BLS)

     Operations:
        getBalReq(header: ns0:RequestHeader, custId: xsd:string, customAvpList: ns0:AttributeValuePairList) -> nalId: xsd:string, custId: xsd:string, custRole: xsd:string, nalType: xsd:string, bal: ns0:BalDetailsList, customAvpList: ns0:AttributeValuePairList

只需遵循:

from zeep import Client
client = Client('XXXXXXXX.wsdl')
client.service.getBalReq(custId='12345678')

我收到以下错误:

"Missing element %s" % (self.name), path=render_path

zeep.exceptions.ValidationError: Missing element header (GetBalReq.header)

现在我在过去 2 天里一直在绞尽脑汁地思考如何完成这项工作,如何发送正确的请求以获得有效的响应,阅读 zeep 文档、论坛等,但就是想不通。 任何关于正确代码的想法?

您必须将参数“header”传递给方法“getBalReq”,如下所示。

    from zeep import Client
    client = Client('XXXXXXXX.wsdl')

    header_request = client.get_type('ns0:RequestHeader')
    header = header_request(auditInfo = your_auditInfo,transactionId = your_transactionId)
    client.service.getBalReq(header=header, custId='12345678', customAvpList = your_customAvpList)

如果 customAvpList 是可选参数,则可以忽略它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM