Простой, но продвинутый XML-RPC на PHP? - PullRequest
1 голос
/ 09 ноября 2010

Я пытаюсь использовать API Opensubtitles в своем проекте, но я просто не могу заставить его работать правильно. Я использую обертку под названием Ripcord , которая в конечном итоге проста и удобна в использовании, но не поддерживает все. С ним легко использовать метод LogIn , но когда ищет субтитры , я не могу заставить его работать.

Вот мой код во всей его простоте:

include('ripcord.php');
$client = ripcord::client('http://api.opensubtitles.org/xml-rpc');
$token_from_login = $client->LogIn('username','password','lang','useragent'); //works fine
$get = $client->SearchSubtitles($token_from_login,array('query'=>$search)); //doesn't work

Проблема должна заключаться в том, что Ripcord не поддерживает массив. Поэтому я ищу альтернативные способы совершать звонки с легкостью.

Я новичок в XML-RPC, поэтому я хотел бы получить некоторую конструктивную помощь, так как это кажется популярным способом создания API. Мне нужен хороший пример для вызовов XML-RPC. Я не могу понять руководство по PHP. Обертка / класс не обязательна, если она достаточно проста без класса.

Марти Лайн

Ответы [ 2 ]

3 голосов
/ 15 ноября 2010

Я автор Ripcord, он поддерживает массивы, так как использует PHP-код xmlrpc_encode, который автоматически преобразует его в тип 'struct'.

Однако ваш сценарий использует необъявленную переменную $ search, которая в этом сценарии не заполнена ничем.Предполагая, что у вас есть рабочий скрипт, который заполняет эту переменную, вы можете проверить, какой ответ вы получаете от сервера.Вы можете получить к нему доступ через свойство ответа $ client -> _ после вызова метода.Чтобы увидеть точный xml-rpc-запрос, сделанный клиентом, проверьте свойство $ client -> _ request.

К сожалению, я не смог проверить ваш код далее, так как opensubtitles.org, похоже, сейчас имеет некоторые проблемы.

0 голосов
/ 12 ноября 2010

Попробуйте включить клиент Zend Framework xml-rpc - я не думаю, что это будет большой проблемой. Он очень аккуратно построен, и я думаю, что он решит проблему с массивами.

...