Pergunta

Estou tentando obter uma configuração simples do servidor XMLRPC do cliente/servidor, mas estou tendo problemas para usar parâmetros. O código funciona bem se eu tomar o $ client_id parâmetro fora do FetchClient () método e $ client-> ligue (). No entanto, se eu incluí -lo, o servidor retorna "Os parâmetros de chamada não correspondem à assinatura"

Código do controlador:

class XmlrpcController extends Zend_Controller_Action
{
    public function init()
    {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender();
    }

    public function indexAction()
    {
        $server = new Zend_XmlRpc_Server();
        $server->setClass('App_Service_Customer','customer');
        echo $server->handle();
    }
}

App/Service/Customer.php:

class App_Service_Customer
{
    /**
     * @param int $client_id
     * @return string
     */
    public function fetchCustomer($client_id)
    {
        return 'john doe';
    }
}

Código de teste do cliente:

$client = new Zend_XmlRpc_Client('http://localhost/xmlrpc');
echo $client->call('customer.fetchCustomer', 1);

Alguma ideia?

Foi útil?

Solução

Desprezo. Eu descobri o parâmetro correto para a entrada:

echo $client->call('customer.fetchCustomer', array(array('client_id' => 1)));
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top