Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jair Humberto

[Resolvido] Como ver o que estou enviando para o webservice

Recommended Posts

Olá,

 

Alguém sabe se tem como saber o que um objeto da classe SoapParam gera?

Por exemplo se fosse possível exibir o resultado: echo new SoapParam('senha', 'usuario');

o que me retornaria?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Alguém sabe se tem como saber o que um objeto da classe SoapParam gera?

Por exemplo se fosse possível exibir o resultado: echo new SoapParam('senha', 'usuario');

o que me retornaria?

 

Obrigado

 

Ué, gera uma instância de SoapParam!!

 

São apenas wrappers para se enquadrar na interface proposta pela biblioteca SOAP. Isso garante que você envie os dados encapsulados da forma que foi projetado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Evandro, o problema é que estou passando alguns parâmetros para um webservice supostamente de forma correta, entretando o webservice me retorna erro como se eu estivesse errando os dados.

 

Veja a que me refiro:

 

   // Dados a serem passados para o webservice.
   $dadospassados = array(
       new SoapParam('meuusuario', 'Login'),
       new SoapParam('minhasenha', 'Senha')
   )

   $ws = new SoapClient('endereco?WSDL');
   $retorno = $ws->__soapCall('metodo', array($dadospassados));

   // Aqui deveria retornar sucesso, mas retorna senha inválida!
   echo $retorno->mensagem;

   // Por isso eu queria saber o que estou passando mas se eu fizer
   // algo como isso:
   var_dump($dadospassados);

   // Só consigo ver os dados da instancia da classe, que parecem    
   // corretos. Queria ver o que realmente está
   // sendo passado no xml para o webservice.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$dadospassados

já é um Array.

Você não precisa envolvê-lo dentro de outro antes de enviar para __soapCall

 

$retorno = $ws->__soapCall('metodo', array($dadospassados));

 

$retorno = $ws->__soapCall('metodo', $dadospassados);

Compartilhar este post


Link para o post
Compartilhar em outros sites

$instanciaDeSoapClient->umaOperacaoQualquer( $parametro );

var_dump( $instanciaDeSoapClient->__getLastRequest() ); //vai mostrar o XML enviado
var_dump( $instanciaDeSoapClient->__getLastResponse() ); //vai mostrar o XML da resposta

 

:seta: __getLastRequest

:seta: __getLastResponse

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá João Batista Neto, é exatamente isso que eu queria, obrigado :)

 

Evandro vou verificar novamente o codigo para achar possíveis inconsistências como essa que você citou.

 

Por hora era isso que eu precisava.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.