CI框架的RPCdemo跑不通

发布于 2022-09-11 16:48:42 字数 2391 浏览 23 评论 0

CI官方文档推荐的RPC库是XMLrpc,其中官方demo如下

客户端
使用文本编辑器创建一个控制器 Xmlrpc_client.php ,在这个控制器中, 粘贴以下的代码并保存到 applications/controllers/ 目录:

<?php

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>';
        }
    }
}
?>

服务端
使用文本编辑器创建一个控制器 Xmlrpc_server.php ,在这个控制器中, 粘贴以下的代码并保存到 applications/controllers/ 目录:

<?php

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);
    }
}

使用的版本是CodeIgniter v2.1.0

然而运行结果是(换3.1.9版本也同样报错)

The XML data received was either invalid or not in the correct form
for XML-RPC. Turn on debugging to examine the XML data further.

问:如何解决该类报错,CI框架还有哪些可以使用的RPC插件?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深海少女心 2022-09-18 16:48:42

要看实际返回值, 猜测基本上是服务器上报错了. 根据错误, 调整代码.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文