Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 7, 2010 13:13:30

LSN
От:
Зарегистрирован: 2009-12-15
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

XML-RPC, авторизация, пример запроса

Здравствуйте!

у меня не получается сделать запрос к xml-rpc серверу. Из того, что я прочел (Programming Web Services with XML-RPC O'Reilly и книга Марка Лутца): понял, что сначала надо создать соединение с сервером. Насколько я понял это так:

import xmlrpclib
server = xmlrpclib.ServerProxy("http://api.sape.ru/xmlrpc/")
дальше смотрю доступные функции
server.system.listMethods()
выдает список всех доступных функций, значит поидее соединение установлено, а вот дальше полный ступор, нигде не могу нагуглить пример авторизации и отправки/получения запроса.

пишу:
login = 'логин'
password = 'пароль'
server.sape.login(login, password)
обратно выдает какие-то шесть цифр

дальше пишу:

call = server.sape.get_user()
тут уже выдает ошибку

кто знает, объясните пожалуйста как правильно авторизоваться и делать запрос?

справка по функциям этого сервера тут - http://www.sape.ru/api_xmlrpc.php



Офлайн

#2 Янв. 7, 2010 14:18:46

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

XML-RPC, авторизация, пример запроса

в приведенной вами ссылке сказано, что login возвращает userid. А для всех последующих вызовов нужно использовать возвращенные cookie.
xmlrpc.ServerProxy берет transport вторым параметром. Можете унаследоваться от xmlrpc.Transport и работать с куками в нем.



Офлайн

#3 Янв. 7, 2010 14:33:49

LSN
От:
Зарегистрирован: 2009-12-15
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

XML-RPC, авторизация, пример запроса

Андрей Светлов
в приведенной вами ссылке сказано, что login возвращает userid. А для всех последующих вызовов нужно использовать возвращенные cookie.
xmlrpc.ServerProxy берет transport вторым параметром. Можете унаследоваться от xmlrpc.Transport и работать с куками в нем.
Про userid я понял, спасибо. а вот с остальным не понятно. Может кто-нибудь сможет показать пример кода как это правильно сделать?



Офлайн

#4 Янв. 7, 2010 15:05:20

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

XML-RPC, авторизация, пример запроса

Экий вы… быстрый. Попробуйте сочинить из xmlrpclib, httplib и coockielib что-нибудь работающее. Если не будет получаться - выкладывайте исходник и спрашивайте более конкретно.



Офлайн

#5 Янв. 7, 2010 15:13:14

LSN
От:
Зарегистрирован: 2009-12-15
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

XML-RPC, авторизация, пример запроса

Андрей Светлов
Попробуйте сочинить из xmlrpclib, httplib и coockielib что-нибудь работающее. Если не будет получаться - выкладывайте исходник и спрашивайте более конкретно.
Андрей Светлов, спасибо. буду пытаться. Я правильно понял, что надо извлечь cookie которые мне вернула функция login, а потом их отправлять при каждом запросе?


Андрей Светлов
Экий вы… быстрый.
Да научиться очень хочется, а с книгами туговато + опыта почти 0. Вот и приходится знающих людей вопросами донимать



Офлайн

#6 Янв. 7, 2010 19:32:14

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

XML-RPC, авторизация, пример запроса

Как я понял, чуть-чуть не так. Куки нужно обновлять после каждого ответа. Точно так же, как браузер делает.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version