Xml-rpc

8 contenuti / 0 new
Ultimo contenuto
Xml-rpc

Ho un problema per usare questo protocollo....
Dovrei fare una richiesta come client ad un server da un sito in drupal!
sul manuale di Drupal fa un esempio non proprio chiaro (almeno per me!): dice di usare un'istruzione simile a questa

$time = xmlrpc('http://time.xmlrpc.com/RPC2', 'currentTime.getCurrentTime');

che dovrebbe ritornare l'ora corrente. Bene...io ho abilitato il modulo drupal che automaticamente mi ha creato nella cartella del sito un file xmlrpc.php, ma non so come impostare la chiamata al server!Non so nemmeno dove vada di preciso questa istruzione!!Forse mi manca qualcosa(moduli o qualcos'altro..)?

è un istruzione PHP che deve essere eseguita, può trovarsi in un nodo, in un modulo, in altri 100 posti (non pensate subito male :P ), dipende dalle esigenze. Un modo banalissimo per farla eseguire all'interno di una pagina è di creare un novo contenuto di tipo Page, impostare il formato di input a PHP code, dopo di che scrivi:

<?php
$time
= xmlrpc('<a href="http://time.xmlrpc.com/RPC2'" rel="nofollow">http://time.xmlrpc.com/RPC2'</a>, 'currentTime.getCurrentTime');
print
$time;
?>

Che come prima cosa richiede al server currentTime e lo memorizza nella variabile time, dopo di che stampa questa informazione nella pagina.

Ciao
Marco
--
My blog
Working at @agavee

Ho provato come dici tu ma non funziona....
Ho creato una nuova pagina (l'ho chiamata "Ora") e nel body ho messo il codice da te postato....poi ho provato a richiamare la pagina "Ora" ma mi visualizza una pagina bianca!!
HHHEEELLLLPP meeeee!!!

Prova con:

<?php
$time
= xmlrpc('<a href="http://time.xmlrpc.com/RPC2'" rel="nofollow">http://time.xmlrpc.com/RPC2'</a>, 'currentTime.getCurrentTime');
$prova = xmlrpc_value($time);
print xmlrpc_value_get_xml(
$prova);
?>

(Testato e funzionante)
Controlla di inserire come formato di input PHP code altrimenti non va nulla :)

Ciao
Marco
--
My blog
Working at @agavee

SEI UN MITO GRAZIE!!!
Ora però se puoi ti chiedo di illuminarmi ancora a riguardo...
Io ho una servlet java su un database esterno....Tramite uno script in html prendo due parametri che sono scritti in due form. Ora devo passare questi parametri a questa servlet (in teoria potrei passarli anche alla pagina jsp che richiama la servler...!) e, una volta ke la servelt ha elaborato i dati, riprendere l'output ke questa fa.
Hai un idea di come possa fare? (qualcosa ho in mente però mi vorrei confrontare con altri.)

PS:suggerimenti con qualche linea di codice sono molto ben accetti...!

spè un nomento, ma questa è una servlet che preleva i dati COME e li restituisce COME? Hai guardato la serie delle API xmlrpc? In pratica tu devi effettuare una richiesta alla tua JSP che elaborerà dei dati e ti fornirà una risposta, a questo punto elabori i dati della tua risposta per visualizzarli all'utente.. nulla di trascendentale se hai capito il meccanismo..

Ciao
Marco
--
My blog
Working at @agavee

Devo fare in modo che la servlet riceva i dati via xml-rpc. Per quanto riguarda la restituzione pensavo che di suo la servlet restituisce un un xml...da qui dovrei poi estrapolare i dati per visualizzarli in una pagina html o php.

no, la servlet restituisce una RPC che contiene un XML ma anche tutta una serie di informazioni aggiuntive (gli header della pagina per capirci), poi dalla tua risposta devi estrarre l'XML e successivamente andare a prelevare i dati dal suo interno... ovviamente questo è il meccanismo standard che credo usi anche la tua servlet, poi dipende da come hai implementato il tutto :)

Ciao
Marco
--
My blog
Working at @agavee