ugrás a tartalomhoz

XML-RPC introspection

w3net · 2007. Nov. 27. (K), 13.08
Az xmlrpc bõvítmény-t használom és szeretném implementálni a
system.listMethods
system.methodSignature

metódusokat (cikk az XMLRPC-ről).

Ime a kód:

function _introspection_cb($userdata){
    return file_get_contents('meta.xml');
}

$request_data = file_get_contents('php://input');
$rpcserver = xmlrpc_server_create();
...
$ret = xmlrpc_server_register_introspection_callback($rpcserver, '_introspection_cb');

Az implementált függvények leirása a meta.xml fájlban vannal:
<?xml version="1.0" encoding="UTF-8"?>
<introspection version="1.0">
	<methodList>

<!-- auth.accounts.getinfo -->
        <methodDescription name="auth.accounts.getinfo">
            <purpose>Returns account information.</purpose>
            <signatures>
                <signature>
                    <params>
                        <value type="string">Unique identifier for a user</value>
                    </params>
                    <params>
                        <value type="int">unique account ID in database</value>
                        <value type="base64">unique account ID in database</value>
                    </params>
                    <returns>
                        <value type="boolean" descr=""></value>
                    </returns>
                </signature>
                
                <signature>
                    <params>
                        <value type="int">unique account ID in database</value>
                        <value type="base64">unique account ID in database</value>
                    </params>
                    <returns>
                        <value type="double"></value>
                    </returns>
                </signature>
                
            </signatures>
        </methodDescription>

	</methodList>
</introspection>
A system.methodSignature eljárás //$client->Call('system.methodSignature',"auth.accounts.getinfo") ezt adja vissza:

Array(
    Array
    (
        [0] => boolean
        [1] => string
        [2] => double
        [3] => int
        [4] => base64
    )
    Array
    (
        [0] => boolean
        [1] => string
        [2] => double
        [3] => int
        [4] => base64
    )
)
szerintem pedig ezt kellene vissaadnia:

Array(
    Array
    (
        [0] => boolean
        [1] => string
    )
    Array
    (
        [2] => double
        [3] => int
        [4] => base64
    )
)
A kérdésem a következő:
Helyesen írtam meg a meta.xml fájl tartalmát?
Másnak is így működik, vagy ez valami bug?

Előre is köszönöm a segítséget.