Ciao
ormai è circa 1 settimana che sto cercando di approfondire i ws in php e nn riesco a capire come mai quando cerco di passare un array proprio nn ne vuole sapere.
Il server è : http://phpxmlrpc.sourceforge.net/server.php
Di seguito il codice:
Di seguito il codice che non funziona:codice://chiamata a un metodo che vuole un int. questo funziona $par2 = new xmlrpcval(23, "int"); $msg1 = new xmlrpcmsg("examples.getStateName", array($par2)); $con = new xmlrpc_client("/server.php", "phpxmlrpc.sourceforge.net", 80); $risposta = $con->send($msg1); echo "dopo send "; echo $risposta->faultCode()." "; if(!$risposta->faultCode()){ $v2 = $risposta->value(); $result = $v2->scalarval(); // non funzionerebbe con array! print "Città: " . htmlspecialchars($result); } else{ print "An error occurred:\n"; print " Code: " . htmlspecialchars($risposta->faultCode())."\n"; print " Reason: " . htmlspecialchars($risposta->faultString()); }
Ho provato anche in questo modo:codice:$obj = new xmlrpcval(array("aaa"=>new xmlrpcval(35, "int"),"bbb"=>new xmlrpcval(21,"int"),"ccc"=>new xmlrpcval(23, "int"), "ddd" =>new xmlrpcval(45,"int")),"a"); $messaggioObj = new xmlrpcmsg('examples.sortByAge', array($obj)); $clientObj = new xmlrpc_client("/server.php", "phpxmlrpc.sourceforge.net", 80); $rispostaObj = $clientObj->send($messaggioObj); if(!$rispostaObj->faultCode()){ $v2 = $rispostaObj->value(); $result = $v2->scalarval(); // non funzionerebbe con array! print "Città: " . htmlspecialchars($result); } else{ print "An error occurred:\n"; print " Code: " . htmlspecialchars($rispostaObj->faultCode())."\n"; print " Reason: " . htmlspecialchars($rispostaObj->faultString()); }
codice:$elementi = array("aaa"=>45,"bbb"=>23,"ccc"=>32,"ddd"=>24); $parEncode = php_xmlrpc_encode($elementi); echo " "; print_r($parEncode); echo " "; $msgEncode = new xmlrpcmsg("examples.sortByAge", array($parEncode)); $clientObj = new xmlrpc_client("/server.php", "phpxmlrpc.sourceforge.net", 80); $rispostaObjEncode = $clientObj->send($msgEncode); echo " mandato msgEncode "; echo $rispostaObjEncode->faultCode() . " ";

Rispondi quotando