Simple, but advanced XML-RPC on PHP?
I'm trying to use the Opensubtitles API in my project, but I just can't make it work right. I'm using a wrapper called Ripcord, which is ultimately simple and nice to use, but it doesn't support everything. It's easy to use the method LogIn with it, but when searching for subtitles, I cannot make it work.
Here's my code in all its simplicity:
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->SearchSubt开发者_StackOverflow社区itles($token_from_login,array('query'=>$search)); //doesn't work
The problem must be the the fact that Ripcord doesn't support array. So I'm looking for alternative ways to make calls with ease.
I'm new to XML-RPC so I wish for some constructive help as it seems to be a popular way to make API. I basically need a good example for XML-RPC calls. I cannot understand the PHP's manual. A wrapper/class is not necessary, if it's fairly simple without a one.
Martti Laine
I'm the author of Ripcord, it does support arrays, as it uses PHP's xmlrpc_encode which converts it automatically to the 'struct' type.
However your script uses an undeclared variable $search, which isn't filled with anything in this script. Assuming you have a working script which does fill in this variable, you might want to check what response you are getting from the server. You can access that through the $client->_response property, after calling a method. To see the exact xml-rpc request the client made, check the $client->_request property.
Unfortunately I could not check your code further, since opensubtitles.org seems to have some problems right now.
Try to include the Zend Framework's xml-rpc client - I don't think it would be much of a hassle. It is very neatly built and I think it will solve the problem with arrays.
精彩评论