Zeep PHP в Python SOAP-запросы

Я ищу, чтобы скопировать некоторый код PHP, который я использую в Python.

Таким образом, код PHP генерирует следующий запрос SOAP

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"xmlns:ns1="http://ws.apache.org/axis2">
<SOAP-ENV:Body>
<ns1:getKey>
<ns1:user>USERNAME</ns1:user>
<ns1:password>PASSWORD</ns1:password>
</ns1:getKey>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Это работает хорошо, однако, при попытке повторить это в Python с использованием Zeeps с помощью следующего кода, я получаю запрос, показанный ниже, с ошибкой!

от клиента импорта zeep
из lxml import etree

class RemoveWSA():
def egress(self, envelope, http_headers, operation, binding_options):
envelope.find('{http://schemas.xmlsoap.org/soap/envelope/}Header').clear()
def ingress(self, envelope, http_headers, operation):
start = 1

#client = Client('http://www.maxbounty.com/api.cfc?wsdl', plugins=[RemoveWSA()])
client = Client('http://www.maxbounty.com/api.cfc?wsdl')

params = {"user":"USERNAME","password":"PASSWORD"}

#node = client.create_message(client.service, 'getKey', **params)

#print(etree.tostring(node, pretty_print=True))

result = client.service.getKey(**params)

#print(result)

Результаты в:

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Action>urn:getKey</wsa:Action>
<wsa:MessageID>urn:uuid:bd8376a3-adf6-4ae6-983c-2ebf83f2e934</wsa:MessageID>
<wsa:To>http://www.maxbounty.com:80/api.cfc</wsa:To>
</soap-env:Header>
<soap-env:Body>
<ns0:getKey xmlns:ns0="http://ws.apache.org/axis2">
<ns0:user>USERNAME</ns0:user>
<ns0:password>PASSWORD</ns0:password>
</ns0:getKey>
</soap-env:Body>
</soap-env:Envelope>

Использование функции RemoveWSA создает следующее (не уверен, что делает функция входа)

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"/>
<soap-env:Body>
<ns0:getKey xmlns:ns0="http://ws.apache.org/axis2">
<ns0:user>USERNAME</ns0:user>
<ns0:password>PASSWORD</ns0:password>
</ns0:getKey>
</soap-env:Body>
</soap-env:Envelope>

Как я могу повторить запрос PHP и успешно вернуться к тому, что я получил от него в Python!

Еще примеры кода, дайте мне знать!

ура

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]