在连接到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}地图。没有适用于 命名空间“ http://xml.apache.org/xml-soap”。
你知道为什么要吗?我进行了一些研究,但没有找到解决问题的办法。
谢谢。
编辑:如果我使用参数 raw_response = True ,则我具有正确的XML答案。