Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 10, 2012 06:54:50

mironich
От:
Зарегистрирован: 2011-05-23
Сообщения: 118
Репутация: +  2  -
Профиль   Отправить e-mail  

xmlrpclib seolib.ru API

Есть прототип функции

(int) extlinks.checkYandexIndexedPage(Array( (char) login, (char) md5_password, (char) url)
Делаю так:
cl = xmlrpclib.ServerProxy('http://www.seolib.ru/script/xmlrpc/server.php')
auth_data = ["mironich", "**", 'vk.com']
print cl.extlinks.checkYandexIndexedPage(auth_data)
Выдетает:
 <Fault 3: 'Incorrect parameters passed to method: Wanted string, got array at param 1'>



Офлайн

#2 Окт. 10, 2012 07:18:04

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

xmlrpclib seolib.ru API

В сигнатуре же три параметра, а вы передаете список зачем-то.

print cl.extlinks.checkYandexIndexedPage("mironich", "**", 'vk.com')

Отредактировано reclosedev (Окт. 10, 2012 07:18:20)

Офлайн

#3 Окт. 10, 2012 07:21:38

mironich
От:
Зарегистрирован: 2011-05-23
Сообщения: 118
Репутация: +  2  -
Профиль   Отправить e-mail  

xmlrpclib seolib.ru API

reclosedev
“mironich”, “**”, ‘vk.com
Сначала так и делал.
Вылетает исключение.
<Fault 3: 'Incorrect parameters passed to method: No method signature matches number of parameters'>
Причина в том что разрабы когда делали API использовали сильнодействующие вещества….
Он принимает сериализованные массивы в кач-ве аргумента, сериализованные в php!
Вопрос решен всем спасибо.
Написал такую функцию.
Вот функц. серилизует список, держит только str\int типы, остальное мне не надо было.
[CODE]from StringIO import StringIO
def serialize(array):
	tmp_data = StringIO()
	tmp_data.write('a:%i:{' % len(array))
	sch = 0
	for item in array:
		tmp_data.write('i:%i;' % sch)
		if isinstance(item, str):
			tmp_data.write('s:%i:"%s";' % (len(item), item))
		elif isinstance(item, int):
			tmp_data.write('i:%i;' % item)
		sch += 1
	tmp_data.write('}')
	res_str = tmp_data.getvalue()
	tmp_data.close()
	return res_str
[/CODE] 
Тему можно закрывать, всем спасибо кто поучаствовал в обсуждении.



Отредактировано mironich (Окт. 10, 2012 10:07:50)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version