0

关于使用 zeep 对 DHL-SOAP API进行身份验证

我尝试使用 derAndre 提供的代码进行身份验证。但对我来说它没有用。

我只是想获得“getVersion”操作,但由于身份验证而失败。
但是如果我使用它,我会得到一个 401。

服务器返回带有无效 XML 的响应 (401):收到无效的 XML 内容(公共标识符后需要空格,第 1 行,第 50 列)。
内容:b'\n\n401 未经授权\n\n

未经授权

\n

此服务器无法验证您是否有权\n访问所请求的文档。要么您提供了错误的\n凭据(例如,错误的密码),要么您的\n浏览器不知道如何提供\n所需的凭据。

\n\n'

这是代码,我没有掌握它。

session = Session()
session.auth = HTTPBasicAuth(settings.DHL_SOAP_API_USER,settings.DHL_SOAP_API_PW)
client = Client(settings.DHL_WSDL, transport=Transport(session=session))
# Build Authentification header for API-Endpoint using zeep xsd
header = xsd.Element(
    '{http://test.python-zeep.org}Authentification',
    xsd.ComplexType([
        xsd.Element(
            '{http://test.python-zeep.org}user',
            xsd.String()),
        xsd.Element(
            '{http://test.python-zeep.org}signature',
            xsd.String()),
    ])
)
header_value = header(user=settings.DHL_SOAP_API_USER, signature=settings.DHL_SOAP_API_PW)
result = client.service.getVersion('majorRelease:?', 'minorRelease:?', _soapheaders=[header_value])
4

0 回答 0