В документации для подключения к Soap API у меня есть этот код на PHP, и он работает:
define('WSDL_SERVER', 'http://api.belboon.com/?wsdl');
// SOAP options (http://de.php.net/manual/de/soapclient.soapclient.php)
$config = array(
'login' => '',
'password' => '',
'trace' => true
);
try {
$client = new SoapClient(WSDL_SERVER, $config);
$result = $client->getAccountInfo();
echo '<pre>';
print_r($result);
} catch( Exception $e ) {
// Error handling here...
}
Я пытаюсь сделать то же самое с Python и библиотекой Zeep с этим кодом:
from zeep import Client, Settings
from zeep.transports import Transport
from requests.auth import HTTPBasicAuth
from requests import Session
session = Session()
settings = Settings(strict=False, xml_huge_tree=True)
session.auth = HTTPBasicAuth('', '')
client = Client('http://api.belboon.com/?wsdl', settings=settings, transport=Transport(session=session))
test = client.service.getAccountInfo()
Соединение работает, но у меня есть исключение:
zeep.exceptions.NamespaceError: невозможно определить тип
{http://xml.apache.org/xml-soap}Map. Нет доступных схем для
пространство имен 'http://xml.apache.org/xml-soap'.
У вас есть идеи, почему, пожалуйста? Я провел некоторое исследование, но не нашел решения для своей проблемы.
Спасибо.
Редактировать : если я использую параметр raw_response = True У меня правильный ответ XML.