【问题标题】:xmlrpcmsg::serialize() doesn't put params into serialized payloadxmlrpcmsg::serialize() 不会将参数放入序列化的有效负载中
【发布时间】:2018-01-08 03:02:57
【问题描述】:

我们使用 php xmlrpc 库向电子邮件提供商发出 xml rpc 请求。

这些一直有效,但是在新环境(php 5.6 而不是 5.3)上测试这些功能时,似乎xmlrpcmsg 在调用 xmlrpcmsg::serialize() 时不会构建参数值。即使当我 var_dump 对象时参数明显存在。

我包含库的方式是包含 xmlrpc.inc(// 版权所有 (c) 1999,2000,2002 Edd Dumbill。)尽管我找不到任何文档可以告诉我可能需要的任何扩展或 php 版本兼容性。

例子:

$this->msg = new xmlrpcmsg(
                    "contact.transactional", array(
                        // carer details
                        new xmlrpcval(
                            array(
                                "carer_id" => new xmlrpcval($data['Carer_ID'], "string"),
                                "email" => new xmlrpcval($data['CarerEmail'], "string"),
                            ), "struct"
                        ),
                        // campaign_id to be launched
                        new xmlrpcval($trigger['trigger_id'], "int"),
                        // transactional data to be passed into email template
                        new xmlrpcval(
                            array(
                                "carer_id" => new xmlrpcval($data['Carer_ID'], "int"), 
                                "baby_id" => new xmlrpcval($data['Baby_ID'], "string"),
                                "carer_email" => new xmlrpcval($data['CarerEmail'], "string"), 
                            ), "struct"
                        ),
                    )
                );

当我在本地系统/已经上线的服务器上var_dump $this->msg->serialize()

<methodcall>
<methodname>contact.transactional</methodname>
<params>
    <param>
    <value>
        <struct>
            <member>
                <name>email</name>
                <value>
                    <string>adam+testest@testest.co.uk</string>
                </value>
            </member>
        </struct>
    </value>
    <param>
    <value>
        <int>17458</int>
    </value>
    <param>
    <value>
        <struct>
            <member>
                <name>carer_id</name>
                <value>
                    <string>654321</string>
                </value>
            </member>
            <member>
                <name>baby_id</name>
                <value>
                    <string>123456</string>
                </value>
            </member>
            <member>
                <name>carer_email</name>
                <value>
                    <string>adam+testest@testest.co.uk</string>
                </value>
            </member>
        </struct>
    </value>
</params>
</methodcall>

当我在新的测试服务器上var_dump$this-&gt;msg-&gt;serialize()

<methodcall>
<methodname>contact.transactional</methodname>
<params>
    <param>
    <value></value>
    <param>
    <value></value>
    <param>
    <value></value>
</params>
</methodcall>

【问题讨论】:

  • 这看起来像是一个用户态库,而不是标准的 PHP XMLRPC extension

标签: php xml serialization xml-rpc


【解决方案1】:

看来我只需要将库更新到最新版本phpxmlrpc at github

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多