SOAP & Python
3 дня поиска решения, о реализации SOAP клиента на питоне, увенчались хоть каким то успехом.
Сначала попались 3 проекта SOAPpy, ZSI, suds. Потом еще нашел soaplib. Первые два не развивались с ~2007 и ~2005 года, последние еще развиваются потихоньку.
И так, первые два почти сразу отмел, ибо они написаны были во времена 2.5 питона и оффициально не поддерживаются, да и в http://pypi.python.org/pypi их небыло.
Так как soaplib был наден позже, пришлось мучать suds... Но из этих попыток заставить его, ничего не вышло. Я так понял он больше заточен под "более продвинутый SOAP" а именно WSDL, и с простым SOAP просто отказывался работать. И почти всегда получал "TransportError: HTTP Error 405: Method Not Allowed"
Авторизация была почти в корне не правильной, он сначала коннектился к серверу, потом только хотел был авторизироваться, но и до этого не доходило.
soaplib... что то через чур простое, бегло осматривая код, я даже не увидел там задумок о Basic авторизации, которую требовал SOAP. Но это легкая либа для реализации клиента\сервера SOAP.
Самое интересное то, что нормальной документации не видел я по ним... Либо отрывистые примеры, либо ничего полезного...
Пытаться реализовать свой клиент не хотелось...
Попытался оживить SOAPpy v0.12...
и ошибка
Но это нас не остановит, попробовал удалить(то есть строчку from __future__ import nested_scopes added: их всего 3 в 3 файлах)виновника и воуля, компиляция в байт код прошла успешно и либа установилась.
Результат:
Конечно не сразу все так легко получилось, пришлось полазить по коду библиотеки и искать как сделана авторизация, а она происходит не через дополнительные параметры. Все просто тут url составляется вида http://логин:пароль@адрес:порт.
Вроде все что хотел сказал...
C SOAP сильно еще не разбирался, но уже будет чем заняться на днях.
added: Поправил очепятку в примере...
Сначала попались 3 проекта SOAPpy, ZSI, suds. Потом еще нашел soaplib. Первые два не развивались с ~2007 и ~2005 года, последние еще развиваются потихоньку.
И так, первые два почти сразу отмел, ибо они написаны были во времена 2.5 питона и оффициально не поддерживаются, да и в http://pypi.python.org/pypi их небыло.
Так как soaplib был наден позже, пришлось мучать suds... Но из этих попыток заставить его, ничего не вышло. Я так понял он больше заточен под "более продвинутый SOAP" а именно WSDL, и с простым SOAP просто отказывался работать. И почти всегда получал "TransportError: HTTP Error 405: Method Not Allowed"
Авторизация была почти в корне не правильной, он сначала коннектился к серверу, потом только хотел был авторизироваться, но и до этого не доходило.
soaplib... что то через чур простое, бегло осматривая код, я даже не увидел там задумок о Basic авторизации, которую требовал SOAP. Но это легкая либа для реализации клиента\сервера SOAP.
Самое интересное то, что нормальной документации не видел я по ним... Либо отрывистые примеры, либо ничего полезного...
Пытаться реализовать свой клиент не хотелось...
Попытался оживить SOAPpy v0.12...
Код:
sudo python setup.py install
Код:
Traceback (most recent call last): File "setup.py", line 8, in <module> from SOAPpy.version import __version__ File "/home/crunch/src/SOAPpy-0.12.0/SOAPpy/__init__.py", line 5, in <module> from Client import * File "/home/crunch/src/SOAPpy-0.12.0/SOAPpy/Client.py", line 46 from __future__ import nested_scopes
Код:
from SOAPpy import SOAPProxy url = "http://crunch:12345@127.0.0.1:7878/" namespace = 'urn:MaNGOS' client = SOAPProxy (url,namespace) print client.executeCommand(command='s info')
Код:
MaNGOS/0.16.0 (2010-05-13 14:33:35 Revision 9885 - eb29803754a56e28eb621aaaee2a679c19795d0c) for Linux_x32 (little-endian) Используемая библиотека скриптов: Default MaNGOS scripting library Используемая База Данных: YTDB_0.13.3_R544_MaNGOS_R9773_SD2_R1677_ACID_R304_RuDB_R37.6 Использование существом EventAI: Игроков онлайн: 0 (максимум: 0) Игроков в очереди: 0 (максимум: 0) Продолжительность работы сервера: 1 Hour(s) 52 Minute(s) 59 Second(s).
Вроде все что хотел сказал...
C SOAP сильно еще не разбирался, но уже будет чем заняться на днях.
added: Поправил очепятку в примере...
Всего комментариев 2
Комментарии
-
Запись от Hantet размещена 16.05.2010 в 15:41 -
та пустяки
тут полезности мало, только как заставить работать устаревшую либу, и небольшой кусочек кода
Запись от CruncH размещена 16.05.2010 в 18:30