Ir para conteúdo

Arquivado

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

Vinny Oliveira

Usando ksoap para consumir WS php (nusoap)

Recommended Posts

Pessoal, bom dia!

 

Estou com um pequeno problema:

A biblioteca ksoap está me retornando um erro ao tentar integrar com um webservice nusoap, sempre estou recebendo o retorno nulo, erro: 

Citar

06-07 08:53:23.843 3039-3077/com.example.bomprato.bp E/ContentValues: Error: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference

 

Não sei se tem a ver com os parametros namespace, soap_action e method_name, que podem estar configurados incorretamente. Segue abaixo a minha configuração do ksoap com esses dados:

    @Override
    protected String doInBackground(Void... params) {
        Log.i(TAG, "doInBackground");
        System.out.println("INICIO##########################");
        String SOAP_ACTION = "urn:BomPrato#listaIntro";
        String METHOD_NAME = "Notificacoes.listaIntro";
        String NAMESPACE = "urn:BomPrato";
        String URL = "http://www.artistadaweb.com.br/ws/index.php";
        SoapObject resposta = null;
        InputStream resultado;
        try {

            SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);
            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
            envelope.dotNet = false;
            envelope.setOutputSoapObject(Request);



            HttpTransportSE ht = new HttpTransportSE(URL);
            ht.debug = true;

            System.out.println("aqui3");
            ht.call(SOAP_ACTION, envelope);
            System.out.println("aqui2");
            resposta = (SoapObject) envelope.bodyIn;
            System.out.println("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXaqui1");
           // resposta.getProperty("item");


            System.out.println("RESPOSTAAAAA: "+resposta.getProperty(0).toString());
        } catch (Exception ex) {
            Log.e(TAG, "Error: " + ex.getMessage());
        }
        return "fdsdsfds";
    }

Segue o WS de testes que estou utilizando (apenas o metodo listaIntro que está operando por enquanto): http://www.artistadaweb.com.br/ws/index.php

 

Conto com a ajuda de vcs, valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por marcelo.ourico
      Estou precisando fazer o envio de um XML via webservice. Estou utilizando PHP 7.4 e nuSoap.

      Porém esse XML de envio possui várias tags com hífen. Por exemplo <tag-name></tag-name>.
       
      Esse hífen tem sido um problema, principalmente por que eu não posso enviar o XML como string. Apenas como objeto. Então imaginem isso:
       
      $objeto = simplexml_load_string($string_xml);  
      Se simplesmente eu tentar resgatar o valor da TAG já dá erro...
       
      $campo1= $objeto->tag-name;
      O erro ocorre em função de que o hífen é um caractere reservado do PHP... Então como resolver?

      Independente disso, quando eu tento fazer o envio via nuSoap, também recebo erro abaixo:
      wsdl->getTypeDef('tag-name', 'http://xyz.abr...')
      wsdl->serializeType('tag-name', 'tag-name', Object(SimpleXMLElement), '

      Alguém já passou por isso? Sabe como resolver? Pode dar uma dica?
    • Por wolfphw
      Bom dia caros amigos,
       
      estou precisando fazer uma consulta em um WS da Receita Federal mas estou me batendo com algumas dúvidas.
       
      Instalei o certificado que eles me passaram na minha máquina e pelo navegador quando colo a URL do WS ele mostra tudo correto os tipos de consultas e tal, meu problema está no desenvolvimento do client para fazer essa consulta, eu preciso instalar algum Certificado localmente?
       
      E como devo fazer a conexão da minha aplicação com esse WS?
       
      Estou tentando assim:
      <?php require("biblioteca/nusoap.php"); $wsdl = "https://acesso.infoconv.receita.fazenda.gov.br/ws/cpf/ConsultarCPF.asmx?wsdl"; $formaBusca = "listarEmpPorCPF"; $ListaDeCPF = "12345678910"; $CPFUsuario = "12345678910"; $sslcertfile = 'certificado.pem'; $sslkeyfile = 'key.pem'; $passphrase = 'senha'; $param = array('CPFUsuario' => $CPFUsuario, 'ListaDeCPF' => $ListaDeCPF); $soap = new nusoap_client($wsdl, 'wsdl'); $soap->setCredentials("", "", 'certificate', array( 'sslcertfile' => $sslcertfile, 'sslkeyfile' => $sslkeyfile, 'passphrase' => $passphrase, 'verifypeer' => 0, 'verifyhost' => 0 ) ); if($err = $soap->getError()) { die('Error: '.$err); } $result = $soap->call($formaBusca, array('parameters' => $param), '', '', false, true); if($soap->fault) { echo 'Fault! <pre>'; var_dump($result); echo '</pre>'; } else { if($err = $soap->getError()) { die('Error: '.$err); } else { echo '<pre>'; var_dump($result); die('</pre>'); } } ?> E está me dando o seguinte erro:
       
      Error: wsdl error: Getting https://acesso.infoconv.receita.fazenda.gov.br/ws/cpf/ConsultarCPF.asmx?wsdl - HTTP ERROR: cURL ERROR: 58: could not load PEM client certificate, OpenSSL error error:02001003:system library:fopen:No such process, (no key found, wrong pass phrase, or wrong file format?)
    • Por WitchMad
      Ooi gente!
      Seguinte, estou desenvolvendo uma plataforma para advogados. Nela será consultado processos a partir do web service do PJE.
      No site do PJE me recomendou utilizar o NuSoap para consultar o web service e foi o que eu fiz.
      Segue o código da consulta
      <?php require_once 'nusoap/lib/nusoap.php'; /* Parâmetros Requisitados */ // idConsultante // senhaConsultante // numeroProcesso /* Objetos de Resposta sucesso bollean Indica se houve sucesso na consulta do processo. mensagem string Mensagem informando que o processo foi consultado com sucesso. recibo xs:base64Binary Comprovante do protocolo do processo, que contém os dados básicos do processo. */ $wsdl = "https://www.tjpe.jus.br/pje/intercomunicacao?wsdl"; $client = new nusoap_client($wsdl, 'wsdl'); if($client->getError()){ echo "Erro no construtor" . $client->getError(); exit(); } $result = $client->call('consultarProcesso', array('idConsultante'=>'CPF do Consultante', 'senhaConsultante'=>'Senha do Consultante', 'numeroProcesso'=>'Número do Processo')); echo $result['sucesso']; ?> Acontece que a página fica em branco, sem nenhum tipo de mensagem.
      Se possível gostaria de dicas se há algum erro no código, ou alguma outra ferramenta para consultar web service
    • Por Fabrizio.Quadro
      Boa noite galera, será que tem alguem que possa me dar uma força com webservices, eu preciso acessar este webservice https://servicoshm.saude.gov.br/cnes/ProfissionalSaudeService/v1r0?wsdl
      é somente a 2º vez que estou trabalhando com webservice, da outra vez que trabalhei era para acessar o webservice dos correios para calcular o frete, então peguei o codigo e meio que tentei utiliza-lo, mas nao deu certo, o codigo é esse ai
      <?php include "lib/nusoap.php"; $cliente = new nusoap_client('https://servicoshm.saude.gov.br/cnes/ProfissionalSaudeService/v1r0?wsdl', true); $headers = ' <soap:Header> <wsse:Security soap:mustUnderstand="true" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsse:UsernameToken wsu:Id="UsernameToken-5FCA58BED9F27C406E14576381084652"> <wsse:Username>CNES.PUBLICO</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">cnes#2015public</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soap:Header> '; $cliente->setHeaders($headers); $parametros = array('numeroCNS' => '980016280595043'); $resultado = $cliente->call('ConsultarProfissionalSaude', $parametros); print_r($resultado); ?> nao sei se ajuda, mas o xml que o webservice recebe é esse aqui
        
      <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:prof="http://servicos.saude.gov.br/cnes/v1r0/profissionalsaudeservice" xmlns:fil="http://servicos.saude.gov.br/wsdl/mensageria/v1r0/filtropesquisaprofissionalsaude" xmlns:cns="http://servicos.saude.gov.br/schema/cadsus/v5r0/cns" xmlns:cpf="http://servicos.saude.gov.br/schema/corporativo/documento/v1r2/cpf"> <soap:Header> <wsse:Security soap:mustUnderstand="true" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsse:UsernameToken wsu:Id="UsernameToken-5FCA58BED9F27C406E14576381084652"> <wsse:Username>CNES.PUBLICO</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">cnes#2015public</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soap:Header> <soap:Body> <prof:requestConsultarProfissionalSaude> <fil:FiltroPesquisaProfissionalSaude> <cns:CNS> <cns:numeroCNS>980016280595043</cns:numeroCNS> </cns:CNS> </fil:FiltroPesquisaProfissionalSaude> </prof:requestConsultarProfissionalSaude> </soap:Body> </soap:Envelope> Alguem sabe como acessar esse webservice?????
    • Por reinaldorti
      Bom dia, estou tentando pegar um retorno de dados de um webservice.. 
      sou novo nisso, então queria uma ajuda ou sugestão sobre recuperar esses dados..
      link
       
      estou criando um login e senha com nusoap, mais quando eu coloco o e-mail e senha, ele me retorna isso. queria saber com eu pego esses dados. se tem algum tutorial sobre esse assunto, vi no youtube e ate aqui no forum, mais não achei nada que me ajudasse..
       
      desde já agradeço...
       
       
      <?php $Login = filter_input_array(INPUT_POST, FILTER_DEFAULT); if (!empty($Login['Login'])): unset($Login['Login']); require_once 'nusoap/lib/nusoap.php'; $cliente = new SoapClient('http://10.64.0.11:8080/axis2/services/Assinante?wsdl'); $object = array("loginDoUsuarioAssinante" => $Login['loginDoUsuarioAssinante'], "senhaDoUsuarioAssinante" => md5($Login['senhaDoUsuarioAssinante'])); $return = $cliente->call("getLoginAssinanturasAtivasWeb", array('string' => $object)); var_dump($return); endif; ?> <div class="login-box"> <div class="login-logo"> <a href="#"><b>Admin</b>LTE</a> </div> <div class="login-box-body"> <p class="login-box-msg">Sign in to start your session</p> <form name="LoginForm" action="" method="post"> <div class="form-group has-feedback"> <input type="email" class="form-control" placeholder="Email" name="loginDoUsuarioAssinante"/> <span class="glyphicon glyphicon-envelope form-control-feedback"></span> </div> <div class="form-group has-feedback"> <input type="password" class="form-control" placeholder="Password" name="senhaDoUsuarioAssinante"/> <span class="glyphicon glyphicon-lock form-control-feedback"></span> </div> <div class="row"> <div class="col-xs-4"> <input type="submit" name="Login" value="Logar" class="btn btn-primary btn-block btn-flat" /> </div> </div> </form> <!-- <a href="#">I forgot my password</a><br> <a href="register.html" class="text-center">Register a new membership</a> --> </div> </div>  
×

Informação importante

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