Как отправить подписанный запрос на SOAP в rosreestr.ru?

Коллеги, добрый день. Уже неделю пытаюсь отправить запрос в rosreestr. Никакого описания, никаких мануалов нет. Методом тыка дошёл до такого кода. Подскажите плиз кто нить имел дело с этим сайтом:?

import os
from collections import defaultdict
from operator import itemgetter
from suds.client import Client
from suds.transport.https import HttpAuthenticated
from suds import WebFault
from suds import null
from suds.plugin import *
import socket
import ssl
import logging
import base64
print(ssl.OPENSSL_VERSION)
 
 
class CustomTransport(HttpAuthenticated):
    NEW_CERT = '/var/opt/gost-engine/test/cert.pem'
    NEW_KEY = '/var/opt/gost-engine/test/key.pem'
    ca_certs =  '/var/opt/gost-engine/test/cacert.pem'
    def u2handlers(self):
 
        handlers = HttpAuthenticated.u2handlers(self)
 
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        
        ssl_sock = ssl.wrap_socket(s,
            certfile=self.NEW_CERT,
            keyfile=self.NEW_KEY,
            ciphers='ALL:aNULL:eNULL')
        
        ctx = ssl_sock.context
        ctx.load_default_certs(purpose=ssl.Purpose.SERVER_AUTH)
        print(ctx.load_verify_locations(cafile=self.ca_certs))
        print(ctx.get_ca_certs(binary_form=False))
        handlers.append(u2.HTTPSHandler(context=ctx))
        return handlers
 
logging.basicConfig(level=logging.INFO)
logging.getLogger('suds.client').setLevel(logging.DEBUG)
logging.getLogger('suds.transport').setLevel(logging.DEBUG)
url = 'https://portal.rosreestr.ru:4433/cxf/External?wsdl'
location = 'https://portal.rosreestr.ru:4433/cxf/External'
c = Client(url, location=location, transport=CustomTransport())
  • Вопрос задан
  • 202 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы