Я пытаюсь использовать pysimplesoap для связи с SOAP-API веб-сайта Websitepanel. API-интерфейс WebsitePanel Введение говорит:Проблемы с правильной аутентификацией с помощью pysimplesoap
Для взаимодействия с API WebsitePanel вы должны использовать базовую аутентификацию. WebsitePanel признает «Authorization» заголовок с учетными данными пользователя, представленных в следующем формате: Имя пользователя: Пароль
Моя первая попытка была следующая:
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
ошибке ?
Заранее спасибо.
Я попытался это, но инициализатор SoapClient в не принимает ключевое слово параметр 'http_headers'. Правильно ли этот код? –
Я использую версию 1.07a - и она отлично работает. Фактическая подпись инициализатора SoapClient: 'def __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, session = False, soap_server = None, timeout = _USE_GLOBAL_DEFAULT, http_headers = {} ) ' – Subito