Domanda

Sto cercando di ottenere alcune informazioni da Last.fm con CodeIgniter.

$this->load->library("xmlrpc");
$this->xmlrpc->server("http://ws.audioscrobbler.com/2.0/", 80);
$this->xmlrpc->method("user.getrecenttracks");
$request = array("rj", "b25b959554ed76058ac220b7b2e0a026");
$this->xmlrpc->request($request);
if(!$this->xmlrpc->send_request())
{
    echo $this->xmlrpc->display_error();
}

L'unica risposta che ricevo sempre è: Parametri non validi: la richiesta manca di un parametro richiesto

Ha provato alcune varianti con l'array di richieste, ma semplicemente non funziona nel modo in cui lo gestisco ...

È stato utile?

Soluzione

Sei vicino. $request dovrebbe effettivamente essere scritto in questo modo:

$request = array(
                 array(
                       array(
                             'user'=>'rj', 
                             'api_key'=>'b25b959554ed76058ac220b7b2e0a026'
                            ),
                       'struct'
                      )
                );

La richiesta effettiva che i costrutti di classe XML-RPC di CodeIgniter saranno quindi così:

<?xml version="1.0"?>
<methodCall>
    <methodName>user.getrecenttracks</methodName>
    <params>
        <param>
            <value>
                <struct>
                    <member>
                        <name>user</name>
                        <value>
                            <string>rj</string>
                        </value>
                    </member>
                    <member>
                        <name>api_key</name>
                        <value>
                            <string>b25b959554ed76058ac220b7b2e0a026</string>
                        </value>
                    </member>
                </struct>
            </value>
        </param>
    </params>
</methodCall>

Puoi vedere un esempio per ultimo.fm xml-rpc qui. Si noti che è necessario "inviare i parametri come argomenti denominati usando una struttura nel primo nodo Parame." Tenendo presente questo, il CODEIGNITER DOCS stato:

Se si utilizzano tipi di dati diversi dalle stringhe o se si dispone di diversi tipi di dati, inserirai ciascun parametro nel suo array, con il tipo di dati nella seconda posizione.

Spero possa aiutare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top