Найти - Пользователи
Полная версия: xmlrpclib seolib.ru API
Начало » Network » xmlrpclib seolib.ru API
1
mironich
Есть прототип функции
(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'>
reclosedev
В сигнатуре же три параметра, а вы передаете список зачем-то.
print cl.extlinks.checkYandexIndexedPage("mironich", "**", 'vk.com')
mironich
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] 
Тему можно закрывать, всем спасибо кто поучаствовал в обсуждении.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB