XML-RPC, passando os parametros para uma função

3 respostas
cubas

Pessoa
Dei uma olhada no exemplo do xml-rpc do apache, tem um codigo para um cliente básico.

import org.apache.xmlrpc.client.XmlRpcClient;
    import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;

    XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
    config.setServerURL(new URL("http://meuendereco.com.br/xmlrpc.php"));
    XmlRpcClient client = new XmlRpcClient();
    client.setConfig(config);
    Object[] params = new Object[]{new String("meuNome"), new String("minhaSenha")};
    Integer result = (Integer) client.execute("Login.add", params);

Estou usando este exemplo para acessar um webservice.
preciso fazer login nele e receber um número que é o da seção logada.
na documentação fala que o esquema é o seguinte

Parâmetros: struct: [login] => string, [senha] => string
Retorno: string

Como faço para setar os parametros e indicar qual é o login e a senha.

Quando rodo este exemplo ele fala que os parametros estão incorretos.

[color=red]Incorrect parameters passed to method: No method signature matches number of parameters[/color]

Para fazer este tipo de acesso, qual seria a forma mais recomendada.

Obrigado

3 Respostas

peczenyj

tem alguma diferença se os parametros forem um Vetor, ArrayList ou outra Collection?

Vector params = new Vector(); params.addElement("usuario"); params.addElement("senha");

Se bem q pode ter erro pelo lado do PHP :wink:

cubas

Olá.
Tentei passar o parametro usando vetor mas , mesmo assim, o erro persiste.

Será que tem outra maneira ? Tem como checar qual é a estrutura que está sendo enviado para o webservice, qual é o xml ?

Obrigado

Cubas

peczenyj

Eu tenho a impressão que o problema é do lado do php devido a mensagem de erro:

Parece que o metodo que vc esta invocando, com a assinatura que vc esta tentando utilizar, não existe. Por acaso existe algum Login.add que receba 2 strings?

Crie um outro cliente XML-RPC (em ruby ou python, sei la) e tente conectar.

Criado 8 de março de 2008
Ultima resposta 9 de mar. de 2008
Respostas 3
Participantes 2