Я пытаюсь взаимодействовать с веб-сервисом SOAP с помощью Zeep.Заголовки безопасности, сгенерированные Zeep, кажутся похожими на документацию веб-сервиса, но я замечаю, что несколько узлов (например, Signature
) пропускают префикс di:
по сравнению с документацией.
Это мой код:
import xmlsec
from zeep import Client
from zeep.plugins import HistoryPlugin
from zeep.wsse import BinarySignature
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'],
},
}
})
history = HistoryPlugin()
client = Client("https://xxxxx/xxx.wsdl", plugins=[history],
wsse=BinarySignature(
'key.pem', 'cert.pem',
'xxxxxx'))
client.set_ns_prefix("ns2", "http://www.xxxxx/webservice")
client.service.matcherTwo(ondernemingsNummer="xxxxx",
dog=dict(naam="xxx", cat="xxx", dateOfBirth="2012-09-10"),
referenceDate="2016-02-16+01:00")
Было бы замечательно, если бы кто-то дал мне указатель на то, что я делаю неправильно.