LINUX.ORG.RU

SOAP (WSDL), SSL и Python

 , , ,


2

1

Всем привет!

Реально ли заставить работать suds или что-то еще в питоне с SOAP вебсервисом, использующем доступ по ключу (ГОСТ)?

Консольные openssl, curl подключаются.

Питоновский pycurl подключается.

suds не работает. ошибка:

urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>
Что-то мне подсказывает, что он не использует gost-engine, но как его заставить его использовать - совсем непонятно.

Понятно, что можно на основе pycurl написать самому генерацию xml и парсинг результата, но опыта маловато и займет овердофига времени.

Подскажите, плиз, в каком направлении покопать. Уже весь инет изрыл...


Ответ на: комментарий от Pinkbyte

ОС: Arch, Windows 7 (в винде pycurl не удалось завести - ругается на отсутствие gost-engine)

Python: 2.7.11, 3.5.1

suds 0.4 для 2.7 и suds-jurko 0.6 для 3.5

кусок кода для 2.7:

import requests

from suds.client import Client
from suds.transport.http import HttpAuthenticated
from suds.transport import Reply, TransportError


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



t = RequestsTransport(cert=('user.pem', 'user.pem'))
headers = {"Content-Type": "text/xml;charset=UTF-8", "SOAPAction": ""}
client = Client('https://portal.rosreestr.ru:4433/cxf/External?wsdl', headers=headers, transport=t)
javum
() автор топика

Какую-то функцию типа Openssl_config вызвать надо

ei-grad ★★★★★
()
Ответ на: комментарий от javum

ОС: Arch, Windows 7

На арчефак и винфак соответсвенно

Siado ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.