1

我正在使用 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# 中它可以工作!你有什么想法可以帮助我吗?

4

3 回答 3

2

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

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'],
        },
    }
})
于 2017-06-29T16:44:25.343 回答
1

It seems that the problem is with your wsdl as you said, try to use another.
for ex: http://www.soapclient.com/xml/soapresponder.wsdl
and edit your code to be:

client = zeep.Client(wsdl)
于 2017-07-17T09:14:00.533 回答
0

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

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

替换http://my-wsdl, USER PASSWORD (如适用)

然后,执行呼叫

list_of_attribute_sets = soap.service.catalogProductAttributeSetList(session)

我希望这有帮助。

于 2017-07-19T09:32:03.637 回答