Xml-rpc

Joe
Posts: 32
Iscritto il: 03 Giu 07

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..)?


Posts: 1891
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

è un istruzione PHP che deve essere eseguita, può trovarsi in un nodo, in un modulo, in altri 100 posti (non pensate subito male Sticking out tongue ), 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('http://time.xmlrpc.com/RPC2', '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
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Joe
Posts: 32
Iscritto il: 03 Giu 07

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!!!


Posts: 1891
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

Prova con:

<?php
$time
= xmlrpc('http://time.xmlrpc.com/RPC2', '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 Smiling

__________________

Ciao
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Joe
Posts: 32
Iscritto il: 03 Giu 07

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...!


Posts: 1891
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

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
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Joe
Posts: 32
Iscritto il: 03 Giu 07

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.


Posts: 1891
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

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 Smiling

__________________

Ciao
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Condividi contenuti