【发布时间】:2011-04-15 15:24:50
【问题描述】:
我在尝试用 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);
}
?>
但不幸的是,我遇到了一些我无法解释的例外情况:
致命错误:在 /var/www/website/data/www/websitetest.dk/lib/ZendFramework-1.11.5-minimal/library/Zend/XmlRpc/Client 中未捕获的异常“Zend_XmlRpc_Client_HttpException”和消息“UNAUTHORIZED”。 php:288 堆栈跟踪:#0 /var/www/website/data/www/websitetest.dk/lib/ZendFramework-1.11.5-minimal/library/Zend/XmlRpc/Client.php(372): Zend_XmlRpc_Client->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 {main } 在第 288 行抛出 /var/www/website/data/www/websitetest.dk/lib/ZendFramework-1.11.5-minimal/library/Zend/XmlRpc/Client.php
有人知道我做错了什么吗?
【问题讨论】: