0

Consumindo Web Services em ASP.NET com SOAP utilizando Cache

criado por Cesar Rodrigo Bagatoli em 18/09/2006 4:30am
Bem, com a classe pronta agora fica fácil consumir o WS com cache, pois o tratamento do cache já está implementado na classe da página anterior.

<?php
include_once
('wsdl.class.php');

$wsdl
= new TWsdl('/nomeWS.asmx?WSDL');
$wsdl
->setMetodo('metodoDoWS');
$wsdl
->addParam('pParametro 1', 'valor');
$wsdl
->addParam('pParametro 2', 'valor');
//ADICIONE QUANDOS PARAMETROS FOREM NECESSÁRIOS, OU NENHUM CASA NÃO TENHA

$res
= $wsdl->getResult(); //$res CONTEM O OBJETO RETORNADO PELO WS
$res
= $res->metodoDoWSResult; //COLOCA O OBJETO DE RESULTADO DO WS - APENAS UM ATALHO, PODE NÃO SER FEITO...

$erro
= $res->Erro->Codigo; //OS WS QUE TRABALHO SEMPRE CONTÉM UM PARAMETRO 'Erro' QUE RETORNA UM CODIGO DE ERRO CASO HAJA
if($erro != 0) {
    $erroDesc
= $res->Erro->Mensagem;
    $erroDesc
= str_replace("\"", "'", $erroDesc);
    $erroDesc
= str_replace("\n", "\\n", $erroDesc);
    echo
"<script>alert(\"#".$erro."\\n".$erroDesc."\");</script>";
}
else {
    $qtde
= count($res->Resultado->ArrayDeObjetosDoResultado);
   
   
for($i = 0; $i < $qtde; $i++) {
       
if($qtde == 1) {
            $campo1
= $res->Resultado->ArrayDeObjetosDoResultado->Campo1;
            $campo2
= $res->Resultado->ArrayDeObjetosDoResultado->Campo2;
       
}
       
else {
            $campo1
= $res->Resultado->ArrayDeObjetosDoResultado[$i]->Campo1;
            $campo2
= $res->Resultado->ArrayDeObjetosDoResultado[$i]->Campo2;
       
}
       
//ESTE IF EXISTE PQ SE TEM SOMENTE 1 RESULTADO O WS RETORNA UM OBJETO, SE TIVER MAIS ELE ME RETORNA UM ARRAY DE OBJETOS
       
       
//AGORA VC FAZ O QUE QUISER AQUI COM O RESULTADO
   
}
}
?>

E abaixo vai a estrutura do resultado de um WS meu para melhor entendimento:

stdClass Object
(
   
[metodoDoWSResult] => stdClass Object
       
(
           
[Erro] => stdClass Object
               
(
                   
[Codigo] => 0
               
)

           
[Resultado] => stdClass Object
               
(
                   
[ArrayDeObjetosDoResultado] => stdClass Object
                       
(
                           
[Campo1] => 'valor'
                           
[Campo2] => 'valor'
                       
)

               
)

       
)

)

Comentários:

Nenhum comentário foi enviado ainda.

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)