我正在尝试使用pysimplesoap与Websitepanel SOAP-API进行通信。 WebsitePanel API简介说:
要与WebsitePanel API进行交互,您应该使用基本身份验证。 WebsitePanel使用以下格式提供的用户凭据识别“授权”标头:用户名:密码
我的第一次尝试如下:
client = SoapClient(wsdl=endpoint_url, trace=True)
client['Authorization'] = "%s:%s" % (username, password)
返回401“未经授权”。 第二次尝试是:
client = SoapClient(wsdl=endpoint_url, trace=True)
client['wsse:Security'] = {
'wsse:UsernameToken': {
'wsse:Username': username,
'wsse:Password': 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
和
pysimplesoap.client.SoapFault: q0:Security: SOAP response should be signed.
为什么client['Authorization']
不起作用以及Response should be signed
错误消息的含义是什么?
提前致谢。
答案 0 :(得分:3)
我明白了:要使用pysimplesoap正确验证,你必须调用
client = SoapClient(wsdl=u, trace=True,
http_headers={'Authorization': 'Basic %s' % encoded})
encoded
使用base64编码的字符串username:password