我在尝试连接到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}
有没有人知道我做错了什么?
答案 0 :(得分:1)
“XML-RPC for PHP”允许您使用URL中的用户名和密码进行连接: http://phpxmlrpc.sourceforge.net/doc-2/ch07s03.html#id934526