Arquivos

  • PHP – Utilizando o Tipo de Dados LONG para Acesso de Web Service com NuSOAP

    Olá pessoal! Recentemente descobri que o Banco Central possui um web service que permite a consulta de séries históricas dos principais indicadores econômicos. Resolvi desenvolver um pequeno script para acesso ao web service citado para recuperação de alguns indicadores.

    Ocorre que os serviços disponibilizados necessitavam do código do indicador, o qual deveria possuir o tipo de dados LONG, comum em outras linguagens mas INEXISTENTE no PHP. Visando facilitar o trabalho utilizei a biblioteca NuSOAP, disponível gratuitamente no site da SourceForge.

    Ao definir a variável do código do indexador verifiquei que a mesma era enviada como tipo INT para o serviço e não LONG, ocasionando erro na requisição. Ao definir como STRING o serviço também recusava o parâmetro.

    Vasculhando na internet descobri que é possível repassar uma variável do tipo LONG para um web service via PHP. Segue abaixo o exemplo de implementação.

    Boa programação para todos!

    <?php
    /* Testando a implementação de um serviço de acesso ao BACEN */
    /* Busca a biblioteca NuSOAP */
    
    require_once('lib/nusoap.php');
    /* Cria um valor do tipo LONG para o código 226 */
    $valor = new soapval('codigoSerie','long',226,false,false,false);
    /* Cria um cliente para acesso ao webservice BACEN */
    $client = new soapclient('https://www3.bcb.gov.br/sgspub/JSP/sgsgeral/FachadaWSSGS.wsdl', 'wsdl');
    
    /* Verifica se ocorreu erro */
    $err = $client->getError();
    
    if ($err) {
    /* Se teve erro, exibe o mesmo */
    echo '<h2>Erro ao acessar WSDL Bacen.</h2><pre>' . $err . '</pre>';
    }
    /* Chamada o serviço a ser utilizado, nesse caso o de recuperação da última cotação */
    /* Nesse ponto utilizamos

    abr 30th, 2011 | Arquivado em Tecnologia
Posts Tagged ‘nusoap’