Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pysimplesoap进行正确身份验证时遇到的问题_Python_Soap_Pysimplesoap - Fatal编程技术网

Python 使用pysimplesoap进行正确身份验证时遇到的问题

Python 使用pysimplesoap进行正确身份验证时遇到的问题,python,soap,pysimplesoap,Python,Soap,Pysimplesoap,我正在尝试使用PySimpleSAP与Websitepanel SOAP-API进行通信。 WebsitePanel API简介说: 要与WebsitePanel API交互,应使用基本身份验证。WebsitePanel使用以下格式提供的用户凭据识别“授权”标题:用户名:密码 我的第一次尝试是: client = SoapClient(wsdl=endpoint_url, trace=True) client['Authorization'] = "%s:%s" % (username, pas

我正在尝试使用PySimpleSAP与Websitepanel SOAP-API进行通信。 WebsitePanel API简介说:

要与WebsitePanel API交互,应使用基本身份验证。WebsitePanel使用以下格式提供的用户凭据识别“授权”标题:用户名:密码

我的第一次尝试是:

client = SoapClient(wsdl=endpoint_url, trace=True)
client['Authorization'] = "%s:%s" % (username, password)
status: 500
content-length: 924
x-aspnet-version: 4.0.30319
x-powered-by: ASP.NET
server: Microsoft-IIS/7.5
cache-control: private
date: Tue, 12 Feb 2013 14:23:56 GMT
content-type: text/xml; charset=utf-8
返回一个401“未经授权”。 第二次尝试是:

client = SoapClient(wsdl=endpoint_url, trace=True)          
client['wsse:Security'] = {
    'wsse:UsernameToken': {
        'wsse:Username': username,
        'wsse:Password': password,
    }
}    
按预期工作,但返回以下内容:

client = SoapClient(wsdl=endpoint_url, trace=True)
client['Authorization'] = "%s:%s" % (username, password)
status: 500
content-length: 924
x-aspnet-version: 4.0.30319
x-powered-by: ASP.NET
server: Microsoft-IIS/7.5
cache-control: private
date: Tue, 12 Feb 2013 14:23:56 GMT
content-type: text/xml; charset=utf-8

为什么
client['Authorization']
不起作用,应该对
响应的含义进行签名
错误消息


提前谢谢。

我想起来了:要正确地通过pysimplesoap进行身份验证,您必须调用

client = SoapClient(wsdl=u, trace=True, 
                    http_headers={'Authorization': 'Basic %s' % encoded})

通过
encoded
being base64编码字符串
username:password

我发现:要正确地通过pysimplesoap进行身份验证,您必须调用

client = SoapClient(wsdl=u, trace=True, 
                    http_headers={'Authorization': 'Basic %s' % encoded})

使用
encoded
beeing base64编码字符串
username:password

我尝试了这个方法,但是SoapClient的初始值设定项不接受关键字参数
http\u headers
。这个代码示例正确吗?我使用的是1.07a版-它工作正常。SoapClient初始值设定项的实际签名是:
def\uu init__(self,location=None,action=None,namespace=None,cert=None,trace=False,exceptions=True,proxy=None,ns=False,soap\ns=None,wsdl=None,cache=False,cacert=None,sessions=False,soap\u server=None,timeout=\u使用\u全局\u默认值,http\u头={})
我尝试了此操作,但SoapClient的初始值设定项不接受关键字参数
http\u headers
。此代码示例正确吗?我使用的是1.07a版-它工作正常。SoapClient初始值设定项的实际签名为:
def\u init__(self,location=None,action=None,namespace=None,cert=None,trace=False,exceptions=True,proxy=None,ns=False,soap\ns=None,wsdl=None,cache=False,cacert=None,sessions=False,soap\u server=None,timeout=\u使用\u全局\u默认值,http\u头={})