Search code examples
xml-rpc

XML-RPC call using sortbyAge, how to create an array of struck?


http://phpxmlrpc.sourceforge.net/server.php?methodName=examples.sortByAge

I have to make a RPC-XML call using this method,how to make a struck containing this example array as shown in the picture? I would like to test a method myself. enter image description here

<methodCall><methodName>examples.sortByAge</methodName>
<params>
</params>
</methodCall>

I tried to do sth like this

 <param>
            <value>
                <array>
                    <data>
                        <value>
                            <struct>
                                <member>
                                    <name>Adam</name>
                  <value><i4>23</i4></value>
                                    <value>
                                        <struct>
                                            <member>
                                                <name>Filip</name>
                                                <value><i4>18</i4></value>
                                            </member>
                                            <member>
                                                <name>Anna</name>
                                                <value><i4>18</i4></value>
                                            </member>
                                        </struct>
                                    </value>
                                </member>
                                
                            </struct>
                      
                    </data>
                </array>
            </value>
        </param>

But it says

Invalid request payload xmlrpc element ARRAY cannot be child of PARAMS

In fact any format of this XML I tried is not valid.


Solution

  • You have to wrap it in <params> tag, Try this

    <params>
    <param>
    <value><array>
    <data>
    <value><struct>
    <member><name>name</name>
    <value><string>Dave</string></value>
    </member>
    <member><name>age</name>
    <value><string>35</string></value>
    </member>
    </struct></value>
    <value><struct>
    <member><name>name</name>
    <value><string>Edd</string></value>
    </member>
    <member><name>age</name>
    <value><string>45</string></value>
    </member>
    </struct></value>
    </data>
    </array></value>
    </param>
    </params>