Python клиент для Zimbra,ч.3

Ответить
Аватара пользователя
King Bass
Сообщения: 2
Зарегистрирован: Пн фев 06, 2017 2:19 pm

Python клиент для Zimbra,ч.3

Сообщение King Bass » Чт июн 01, 2017 12:25 pm


— вариант 2: отписать свой парсер для аутентификации, далее продолжать работать с SOAPpy. Вариант отпал, так как не хотелось разводить зоопарк.
— вариант 3: подобрать другую библиотеку для работы с SOAP, которая работает без WSDL. Честно сказать, было лень их тестировать, поэтому было решено остановиться на SOAPpy, немного доработав напильником.
Решение проблемы 1:
Во-первых, необходимо переписать SOAPpy. SOAPParser, исключив построение дерева ссылок, так как в Zimbra данный функционал вообще ни к чему.
Дублировать код не хотелось, поэтому поступил дешево и сердито, обнуляя внутренний массив с уже разобранными идентификаторами при каждой обработке узла документа.
Далее, необходимо заменить метод SOAPpy. Parser. _parseSOAP, инициализируя упрощенный парсер вместо оригинального, все остальное, в общем-то, остается без изменений. Замена функции происходит перед отправкой запроса.
Решение проблемы 2:
Чтобы заставить SOAPpy общаться через прокси с аутентификацией, пришлось заменить класс SOAPpy. Client. HTTPTransport на свой, в котором HTTP общение реализовано с помощью urllib2, в которой легко использовать поддержку прокси и прочие плюшки, благо SOAPpy позволяет без проблем предоставлять свою реализацию транспорта.
Вот, собственно говоря, и все. Данная библиотека ни на что особенное не претендует, тем не менее надеюсь хоть кому-то может

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя