我正在尝试在我的服务器上设置XMLRPC服务器和客户端。所以我抓住了codeigniter文档中的示例代码,创建了所需的控制器。而它不起作用,所以它阻止我死在我的轨道上。我得到的错误是在Xmlrpc_client控制器内部。见下文。
Severity: Warning
Message: reset() expects parameter 1 to be array, null given
Filename: libraries/Xmlrpc.php
Line Number: 1889
此行if ( ! $this->xmlrpc->send_request())
这是我的代码,从文档中剪切并粘贴......
客户端
class Xmlrpc_client extends CI_Controller {
public function index()
{
$this->load->helper('url');
$server_url = site_url('xmlrpc_server');
$this->load->library('xmlrpc');
$this->xmlrpc->server($server_url, 80);
$this->xmlrpc->method('Greetings');
$request = array('How is it going?');
$this->xmlrpc->request($request);
if ( ! $this->xmlrpc->send_request())
{
echo $this->xmlrpc->display_error();
}
else
{
echo '<pre>';
print_r($this->xmlrpc->display_response());
echo '</pre>';
}
}
}
和服务器......
class Xmlrpc_server extends CI_Controller {
public function index()
{
$this->load->library('xmlrpc');
$this->load->library('xmlrpcs');
$config['functions']['Greetings'] = array('function' => 'Xmlrpc_server.process');
$this->xmlrpcs->initialize($config);
$this->xmlrpcs->serve();
}
public function process($request)
{
$parameters = $request->output_parameters();
$response = array(
array(
'you_said' => $parameters[0],
'i_respond' => 'Not bad at all.'
),
'struct'
);
return $this->xmlrpc->send_response($response);
}
}
任何帮助表示赞赏。提前致谢
答案 0 :(得分:0)
事实证明我试图从文档中为XMLRPC运行的代码显然是针对当前版本或CI,并且我安装了一个不兼容的旧版本。所以我只是升级了CI,它运作得很好。