Я пытаюсь подписать объект XML, созданный suds, но мне не повезло.Как подписать XML с python (suds)
Мой текущий сценарий выглядит так.
from suds.client import Client
from suds.transport.http import HttpAuthenticated
from suds.transport import Reply, TransportError
import requests
class RequestsTransport(HttpAuthenticated):
def __init__(self, **kwargs):
self.cert = kwargs.pop('cert', None)
HttpAuthenticated.__init__(self, **kwargs)
def send(self, request):
self.addcredentials(request)
resp = requests.post(
request.url,
data=request.message,
headers=request.headers,
cert=self.cert,
verify=True
)
result = Reply(resp.status_code, resp.headers, resp.content)
return result
url = 'URL'
headers = {"Content-Type": "text/xml;charset=UTF-8",
"SOAPAction": ""}
t = RequestsTransport(cert=("path to cert","path to key"))
client = Client(url, headers=headers, transport=t)
Я создаю метод, а затем мне нужно его подписать. У меня есть файл pem для публичного сертификата WSDL, который я проверяю.
Кроме того, если я не подписать запрос, я получаю:
suds.WebFault: Сервер поднял ошибку: «была обнаружена ошибка обработки заголовка»