使用PHP连接到XML-RPC时出错

时间:2011-04-15 15:24:50

标签: php xml-rpc

我在尝试连接到PHP中的XML-RPC服务器时遇到了麻烦。

服务器的地址构造如下: https://username:password@example.com/xmlrpc/

我尝试过不同的XML-RPC库但没有运气,据我所知,由于使用了用户名和密码,它们失败了。没有用户名/密码身份验证的示例不会遇到任何错误并返回正确的结果。

如何从服务器检索必要的信息?

祝你好运

编辑: 我意识到Zend框架内置了对XMLRPC的支持:

<?php
set_include_path($_SERVER['DOCUMENT_ROOT'].'/lib/ZendFramework-1.11.5-minimal/library/');

require_once('Zend/Loader/Autoloader.php'); 
Zend_Loader_Autoloader::getInstance();

define('USERNAME', '*******'); 
define('PASSWORD', '*******'); 
define('LIST_ID', 42);

define('HOSTNAME', 'https://'.USERNAME.'.clients.ubivox.com/xmlrpc/');

$http = new Zend_Http_Client(HOSTNAME, array('keepalive'=>true)); 
$http->setAuth(USERNAME, PASSWORD, Zend_Http_Client::AUTH_BASIC);

$client = new Zend_XmlRpc_Client(HOSTNAME, $http);

try { 
  $response = $client->call('ubivox.get_subscriber', 
                        array('email@user.com'));

  var_dump($response);
} catch (Zend_XmlRpc_Client_FaultException $e) {
  var_dump($e);
}
?>

然而不幸的是,我得到了一些例外,我无法解释:

致命错误:未捕获的异常'Zend_XmlRpc_Client_HttpException',并在/var/www/website/data/www/websitetest.dk/lib/ZendFramework-1.11.5-minimal/library/Zend/XmlRpc/Client中显示消息'UNAUTHORIZED'。 php:288 Stack trace:#0 /var/www/website/data/www/websitetest.dk/lib/ZendFramework-1.11.5-minimal/library/Zend/XmlRpc/Client.php(372):Zend_XmlRpc_Client-&gt; doRequest(Object(Zend_XmlRpc_Request))#1 /var/www/website/data/www/websitetest.dk/test.php(20):Zend_XmlRpc_Client-> call('ubivox.get_subs ...',Array)#2第288行/var/www/website/data/www/websitetest.dk/lib/ZendFramework-1.11.5-minimal/library/Zend/XmlRpc/Client.php中引用{main}

有没有人知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

“XML-RPC for PHP”允许您使用URL中的用户名和密码进行连接: http://phpxmlrpc.sourceforge.net/doc-2/ch07s03.html#id934526