【问题标题】:How to implement a wsdl with zeep in python?如何在 python 中使用 zeep 实现 wsdl?
【发布时间】:2017-06-28 11:32:10
【问题描述】:

我正在使用 zeep 来实现 Web 服务,其中一个 WSDL 在 python 中不起作用,但在 c# 中没关系。

这是我正在使用的代码:

from zeep import Client
wsdl = 'https://sep.shaparak.ir/payments/initpayment.asmx?wsdl'
client = Client(wsdl)

而且,我的错误是:

requests.exceptions.HTTPError: 500 Server Error: Internal Server
Error for url: https://sep.shaparak.ir/payments/initpayment.asmx?wsdl

在 c# 中它可以工作!你有什么好办法帮帮我吗?!

【问题讨论】:

  • 听起来zeep 正在做一些您的服务器无法处理的事情,但 500 服务器错误几乎可以是任何事情。您在服务器上的日志中看到任何内容吗?您能否将 C# 发送的请求与失败的请求进行比较?就目前而言,这个问题可能过于宽泛。

标签: python python-3.x soap zeep


【解决方案1】:

根据您提供的信息,我无法帮助您解决内部服务器错误。但是,我可以帮助您获得更多关于正在发生的事情的信息......

http://docs.python-zeep.org/en/master/transport.html#debugging

import logging.config

logging.config.dictConfig({
    'version': 1,
    'formatters': {
        'verbose': {
            'format': '%(name)s: %(message)s'
        }
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'verbose',
        },
    },
    'loggers': {
        'zeep.transports': {
            'level': 'DEBUG',
            'propagate': True,
            'handlers': ['console'],
        },
    }
})

【讨论】:

  • 感谢您的回答...但是此步骤未收到我的代码...看来 wsdl 有问题!!!
【解决方案2】:

如你所说,似乎问题出在你的 wsdl 上,尝试使用另一个。
例如:http://www.soapclient.com/xml/soapresponder.wsdl
并将您的代码编辑为:

client = zeep.Client(wsdl)

【讨论】:

    【解决方案3】:

    我将 zeep 与 magento 一起使用,这是我加载 wsdl 并获取会话 ID 的方式

    from zeep import Client
    soap = Client(http://my-wsdl)
    session = soap.service.login(USER, PASSWORD)
    

    替换http://my-wsdl,用户密码(如适用)

    然后,执行呼叫

    list_of_attribute_sets = soap.service.catalogProductAttributeSetList(session)
    

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多