Jump to content
Fábio BN

Como tratar Retorno de XML com erro do servidor?

Recommended Posts

Olá.

Tenho uma dúvida mas não sei se saberão me ajudar, tenho um E-commerce que faz o calculo de frete através de XML buscando no servidor dos Correios, como eu faço para quando o servidor dos Correios demorar de responder ou simplesmente tiver offline, ao invés de dar uma tela de erro, eu conseguir tratar esse retorno e redirecionar o cliente para um Outro Link alternativo.
Ou seja, caso demorar por exemplo mais de 10 segundos o retorno, ou quando simplesmente cair o servidor, conseguir redirecionar para uma página de contingência de uma tabela própria.

 

Abraços!

Fábio Nascimento!

Share this post


Link to post
Share on other sites

Olá. Um amigo meu me orientou a pegar alguma variável de retorno do XML que retorne com um valor fixo,  e fazer uma verificação, se algo vier errado ou em branco, eu faço um IF e coloco o código alternativo,  é interessante salvar Logs desses acontecimentos ou enviar por e-mail para ficarmos sabendo quando o retorno do XML deu algum erro até por questão de monitoramento.
Agora é só aguardar o servidor cair para ver se ficou bom.
Abraços!

Share this post


Link to post
Share on other sites

Olá.


Eu estava fazendo testes, quando coloco uma URL do XML inválida, sempre dá erro na linha abaixo, e não consigo tratar o erro.
$xml = simplexml_load_file($url);

Estou com o mesmo problema dessa pessoa desse Link:
https://pt.stackoverflow.com/questions/330612/como-tratar-erros-em-caso-de-falha-no-simplexml-load-file-em-php
 

Eu já procurei algumas alternativas no site do PHP onde mostram formas de ignorar erros do xml mas nenhuma funcionou.

Para eu simular a queda do servidor eu coloco um Link quebrado no link do xml

 

Abraços!

Share this post


Link to post
Share on other sites

Consegui não exibir o erro removendo da página:

error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', true);

 

 

Abraços!

Share this post


Link to post
Share on other sites

No PHP achei uma forma de desativar erros sem precisar remover as linhas:
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', true);

 

Basta colocar um @ na frente da função que se der erro não aparece na tela.

 

Abraços!

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By TaisStream
      Como configurar essa query com inner join, no arquivo .xml?
      Me ajudem pf eu comecei mas estou perdida,  pesquisei já vi algo de /root... mas minha query esta diferente, nao sei se falta algo
       
       
      QUERY ATUAL:
      set mapreduce.job.queuename=low_relatorios; 
      set mapreduce.job.max.split.locations=100;
      SELECT a.num_msisdn,
             a.max_date
      FROM fact.dw_f_rcrg_gems_rate_subsc t
      INNER JOIN
        (SELECT num_msisdn,
                MAX(dat_operacao) AS max_date
         FROM fact.dw_f_rcrg_gems_rate_subsc
         WHERE (ref_date)>=$startdate
           AND ref_date<=$finaldate
           AND ide_plano_tarifario_atual IN (48,
                                             50,
                                             51,
                                             52,
                                             53,
                                             59,
                                             61,
                                             62,
                                             63,
                                             67,
                                             73,
                                             74)
         GROUP BY num_msisdn)a ON a.num_msisdn = t.num_msisdn
      AND a.max_date = t.dat_operacao
      WHERE ref_date>=$startdate
      AND ref_date<=$finaldate;
       
      QUERY CONFIGURANDO NO XML: 
       
          <value><![CDATA[[
      INSERT
              overwrite TABLE fact.dw_f_rcrg_gems_rate_subsc t 
              (
                      a.num_msisdn,
                      a.max_date
              )
      (SELECT
          INNER JOIN
      SELECT      
              MAX(dat_operacao) AS max_date;
      FROM fact.dw_f_rcrg_gems_rate_subsc) a
         WHERE (ref_date)>='$startdate'
           AND ref_date<=$'finaldate'
           AND ide_plano_tarifario_atual IN (48,
                                             50,
                                             51,
                                             52,
                                             53,
                                             59,
                                             61,
                                             62,
                                             63,
                                             67,
                                             73,
                                             74)
         GROUP BY num_msisdn)a ON a.num_msisdn = t.num_msisdn
                  AND a.max_date = t.dat_operacao
      WHERE ref_date>='$startdate'
      AND ref_date<=$finaldate;]]>
      </value>
       
       
      Poderiam me ajudar por favor, sou estagiario na area e ainda estou aprendendo.
    • By Mano Reis
      Tenho tido alguns erros (travamento, pulos, etc) ao executar videos e não sei qual o formato mais seguro para evitar isso.
      Existe algum formato que cria com CRC?
      Obrigado.
    • By mjf2004
      Alguém poderia me ajudar com a solução dessa questão abaixo?
       
      Dado o seguinte esquema relacional para um banco de dados de uma academia , escreva uma definição DTD que do seu ponto de vista mapeie a estrutura desse banco de dados para um banco de dados XML.

      Alunos(RG, Nome, Endereço, Telefone, Sexo, Idade)
      Instrutores(RG, Nome, Endereço, Titulação)
      Turmas(Numero, Atividade, Horário, NoVagas,
      RGInstrutor ref Instrutores(RG) , RGMonitor ref Alunos(RG)
      Matricula(RG ref Alunos(RG), Numero ref Turmas(Numero), Ausências)
    • By sronze
      Ola estou com um problema em JavaScript
      O objetivo e digitar um ID/Nome em um input e ele buscar em um arquivo XML fazendo autocomplete e preencher outros dois inputs com os atributos associado ao ID/Nome da base XML.
       
      GIF de exemplo, obs(exatamente oque pretendo fazer): http://blog-media.chromaticsites.com.s3.amazonaws.com/google-places-autocomplete-3/autocomplete-error.gif
       
      Link do XML: https://www.w3schools.com/js/cd_catalog.xm
       
      Segue meu código:
      <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> <script src="https://code.jquery.com/jquery-1.12.4.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> </head> Nome:<input id="idInput"> UF:<input id="idInput02"> Ano:<input id="idInput03"> <script> var ValorXML1 = []; $(document).on('keyup' , '#idInput' ,function(){ var keyvalue = $("#idInput").val(); var xhttp; xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { ValorXML1 = []; CaregarXML(this , keyvalue); } }; xhttp.open("GET", "https://www.w3schools.com/js/cd_catalog.xml", true); xhttp.send(); }); function CaregarXML(xml , key) { var x, i, xmlDoc , key; xmlDoc = xml.responseXML; x = xmlDoc.getElementsByTagName("TITLE"); var cont = 0; for (i = 0; i < x.length; i++) { var valor = x[i].childNodes[0].nodeValue.trim(); var pattern = valor.substring(0 , key.length); if(key.toUpperCase() == pattern.toUpperCase() && cont < 5){ ValorXML1.push(valor); cont++; } } $("#idInput").autocomplete({ source: ValorXML1 }); } $( function() { $( "#idInput" ).autocomplete({ source:ValorXML1 }); }); </script>  
    • By kamaii
      Oi, sou novo nisso de programação e sabe criei um servidor ftp para guardar meus arquivos html, php e js
      mas quando executo php n vai só aparece o codigo e comandos que estão no arquivo 
      e tipo n sei se precisa instalar algo como uma linguagem ou biblioteca no pc
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.