如何使用xml-rpc连接到Drupal 6

时间:2012-06-01 19:54:10

标签: php drupal xml-rpc

我正在尝试将我的应用与Drupal连接。它返回给我这个错误:“出错了 - -32602:服务器错误。方法参数数量错误。”我认为它应该有用。

有人知道这里有什么问题吗?

我的代码:

set_time_limit(0);
require_once("IXR_Library.php");

// Create the client object
$client = new IXR_Client('http://localhost/drupal6/xmlrpc.php');
//$client->debug=true;
 $username = "admin"; 
 $password = "admin"; 
 $params = array(0,$username,$password,10); 


if (!$client->query('metaWeblog.getRecentPosts', $params)) {
    die('Something went wrong - '.$client->getErrorCode().' : '.$client->getErrorMessage());
}

$myresponse = $client->getResponse();

1 个答案:

答案 0 :(得分:0)

您正在与正在通信的XMLRPC端点获得error message (Specification for Fault Code Interoperability, version 20010516)

这是一个已定义的错误代码:

-32602 ---> server error. invalid method parameters

您请求的RPC方法是由服务器找到的,但是您将无效参数传递给它。请与您使用的服务的支持人员联系,以获取所有可用方法的列表。如果您的参数可用,请与支持人员联系并与他们讨论问题。

在您的情况下,请仔细检查Drupal手册告诉您的metaWeblog.getRecentPosts XMLRPC方法blogapi_xmlrpcDrupal API

array(
  'metaWeblog.getRecentPosts',
  'blogapi_metaweblog_get_recent_posts',
  array('array', 'string', 'string', 'string', 'int'),
  t('Returns a list of the most recent posts in the system.'),
),

如果文档不足,请从Drupal的源代码中查看缺失的部分。

例如,第一个参数需要是一个字符串,但你在这里使用整数0

有关如何使用XMLRPC内省的更多信息,请参阅相关的问题/答案:XMLRPC showing -32601 error (using PHP)

我不知道drupal是否支持XMLRPC Introspection,但看起来确实如此。