Clipper On Line • Ver Tópico - webservice de cep dos correios

webservice de cep dos correios

Discussão sobre ferramentas de apoio à programação (Clipper/[x]Harbour)

Moderador: Moderadores

 

webservice de cep dos correios

Mensagempor janio » 16 Nov 2017 22:28

De fato está funcionando!

O que ocorreu foi que copiei o codigo após clicar em "mostrar código". Algumas vezes o codigo vem DIFERENTE do postado. Ja tinha prestado atenção nisso e agora comprovei q ha problema nisso
Anexos
qui.png
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1648
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 7 vezes
Mens.Curtidas: 34 vezes

webservice de cep dos correios

Mensagempor JoséQuintas » 20 Nov 2017 19:04

Reservei um tempo pra atualizar meu webservice pra buscar informações desse dos correios.....

Desativei alguns minutos depois....

Essa consulta dos correios é FURADA !!!!
Retorna até CEPs que já foram excluídos e não deveriam mais existir !!!!

E ainda cobram por isso !!!!!

Pois é... só se alguém descobrir como quebrar a proteção da consulta on-line atual.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 9086
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 6 vezes
Mens.Curtidas: 526 vezes

webservice de cep dos correios

Mensagempor Toledo » 20 Nov 2017 20:37

José Quintas, seu servidor de hospedagem aceita PHP? Consegui montar um script em PHP que faz a consulta no Correios, mas ainda precisa fazer um tratamento no resultado do retorno da consulta. Veja este exemplo:

http://www.pctoledo.com.br/temp/buscacep.php?cep=16010370

Digitando o link acima no seu navegador, basta informar o cep que você quer consultar.

Se servir, posso lhe passar o código em PHP.

Abraços
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 2920
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 205 vezes
Mens.Curtidas: 201 vezes

webservice de cep dos correios

Mensagempor JoséQuintas » 20 Nov 2017 22:28

Pior que até assustou..... a página dos correios está com problema de codepage kkkkkk

correios.png
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 9086
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 6 vezes
Mens.Curtidas: 526 vezes

webservice de cep dos correios

Mensagempor JoséQuintas » 20 Nov 2017 22:30

Na verdade antes eu usava uma rotina em PHP pra buscar informação que um amigo me passou.

<?php
$cep = $_GET['cep'];
echo Processar($cep);

function Processar($cep){
   $cep = trim(str_replace(array('-','/',':',' '),'',$cep));
   if (strlen($cep)==0){return array(false);}
   if (strlen($cep)!==8){return array(false);}
   $url = "http://m.correios.com.br/movel/buscaCepConfirma.do";
   $ch = curl_init($url);
   curl_setopt ($ch, CURLOPT_POST, 1);
   curl_setopt ($ch, CURLOPT_POSTFIELDS, 'cepEntrada='.$cep.'&tipoCep=&cepTemp=&metodo=buscarCep');
   curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
   curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
   $html = curl_exec ($ch);
   curl_close($ch);
   $DOMDocument = new DOMDocument( '1.0', 'UTF-8' );
   $DOMDocument->preserveWhiteSpace = false;
   @$DOMDocument->loadHTML($html);
   $DOMXPath = new DOMXPath($DOMDocument);
   $value = $DOMXPath->query('.//*[@class="respostadestaque"]');
   $key   = $DOMXPath->query('.//*[@class="resposta"]');
   foreach($key as $content){
      foreach($content->childNodes as $child){
         $keys[] = trim($child->nodeValue);
      }
   }
   foreach($value as $content){
      foreach($content->childNodes as $child){
         $dado = utf8_decode(preg_replace('/[\s]{2,}/', null, $child->nodeValue));
         $values[] = $dado;
      }
   }
   $ret = '';
   $i =0;
   $q = count($keys)-1;
   while ($i<=$q){
      $cid = explode('/',$values[$i+2]);
      $ret.='<inf><log>'.$values[$i].'</log><bai>'.$values[$i+1].'</bai><cid>'.$cid[0].'</cid><uf>'.$cid[1].'</uf><cep>'.$values[$i+3].'</cep></inf>';
      $i+=4;
   }
   return $ret;
}
?>
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 9086
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 6 vezes
Mens.Curtidas: 526 vezes

webservice de cep dos correios

Mensagempor asimoes » 24 Mar 2018 08:34

Voltando ao assunto,

Offtopic do assunto

Tem placa de rua que contém o número do cep os correios atualizam isso ou colocam um adesivo por cima ????

Do jeito que os serviços dos correios estão indo ou abrem para concorrência ou privatizam logo, porque tá difícil.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 3643
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 205 vezes
Mens.Curtidas: 154 vezes

webservice de cep dos correios

Mensagempor JoséQuintas » 24 Mar 2018 23:48

De uns tempos pra cá, parece que tudo do governo está ruim... é muito dinheiro desperdiçado/desviado, então tá tudo ficando incompleto...
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 9086
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 6 vezes
Mens.Curtidas: 526 vezes

webservice de cep dos correios

Mensagempor Mario Mesquita » 13 Abr 2018 08:22

Bom dia, amigos.

Estou adaptando a função ConsultaCep() para enviar um XML para um site. Envia, não dá erro algum, mas não estou conseguindo pegar a resposta.

Talvez por não saber o "response" do site. Como posso descobrir isso?

Eu tento pegar pelo método, mas me dá erro. Volta algo tipo Objeto e quando tento ver, dá um erro de execução.

Não se ajuda mostrar o trecho do programa, talvez facilite:

STATIC FUNCTION Enviar_Edital()
LOCAL cUrlWs := ALLTRIM(SETEDI->URL) // URL = http://rj.hm.edital21.com.br/service?wsdl
LOCAL cXml, oMSXML, oDOMDoc, xDest, Mdt, nArqXML, cXmlRetorno

Mdt     := Frm_Edital.DatePicker_1.Value
xEnviar := ALLTRIM(SETEDI->PASTA_ENV) + "E" + STRZERO(DAY(Mdt), 2,0)     + ;
                                              STRZERO(MONT(Mdt),2,0)     + ;
                                              SUBS(STR(YEAR(Mdt),4,0),3) + ;
                                              ".XML"
cXml    := HB_Memoread(xEnviar) // SoapEnvelope( cCep )
oMSXML  := win_OleCreateObject( "MSXML2.ServerXMLHTTP" )
oDOMDoc := win_OleCreateObject( "MSXML2.DOMDocument" )
//msginfo(cxml)

WITH OBJECT oMSXML
     :Open( "POST", cUrlWs, .F. )
     :SetRequestHeader( "Content-Type", 'text/xml; charset="utf-8"' )
     //:SetRequestHeader( "Content-Length", hb_NtoS( hb_BLen( cXML ) ) )
     :Send( cXML )
     :WaitForResponse( 500 )
END WITH

/*
cRetorno := oMSXML:responseXML
msginfo('Retorno: '+cRetorno)
xDest    := ALLTRIM(SETEDI->PASTA_RET) + "Retorno.xml"
HB_MemoWrit(xDest,cRetorno)
msginfo('Arq. Retorno: '+xdest)
*/

WITH OBJECT oDOMDoc
     :aSync := .F.
     :Load( oMSXML:responseXML )
     cRetorno := oMSXML:responseXML
    //cCEP      := :getElementsByTagName( "cep"    ):item(0):Text
     //cBairro   := :getElementsByTagName( "bairro" ):item(0):Text
     //cCidade   := :getElementsByTagName( "cidade" ):item(0):Text
     //cEndereco := :getElementsByTagName( "end"    ):item(0):Text
     //cUF       := :getElementsByTagName( "uf"     ):item(0):Text
     //cID       := :getElementsByTagName( "id"     ):item(0):Text
END WITH
// */

msginfo(cRetorno)
msginfo('Retorno: Tipo:'+valtype(cRetorno)+' Tam: '+str(len(cRetorno),9,0))
////
IF ValType( cRetorno ) == "C"
   cXmlRetorno := cRetorno
ELSEIF cRetorno == NIL
   cXmlRetorno := "*ERRO*"
ELSE
   cXmlRetorno := ""
   FOR nCont = 1 TO Len( cRetorno )
       //cXmlRetorno += Chr( cRetorno[ nCont ] )
       //cXmlRetorno += cRetorno[ nCont ]
   NEXT
ENDIF
////
xDest := ALLTRIM(SETEDI->PASTA_RET) + "Retorno.xml"
HB_MemoWrit(xDest,cRetorno)
msginfo('Arq. Retorno: '+xdest)
MSGINFO("ARQUIVO XML " + xEnviar + " ENVIADO.")

RETURN NIL


Tentei ler a resposta usando outro trecho de programa, mas sem sucesso.
Se alguém puder dar uma dica, agradeço muito. Ainda engatinhando em consumo de webservice.

Saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 309
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 1 vez
Mens.Curtidas: 6 vezes

webservice de cep dos correios

Mensagempor hazael » 18 Abr 2018 16:32

Notei uma baixa na qualidade dos serviços dos Correios e até aumento dos preços ultimamente.
Harbour | GTWVT | MingW | Visual Studio Code
Avatar de usuário

hazael
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 145
Data de registro: 27 Nov 2016 12:59
Curtiu: 1 vez
Mens.Curtidas: 9 vezes

Anterior



Retornar para Ferramentas de Apoio

Quem está online

Usuários vendo este fórum: Ahrefs [Bot] e 1 visitante


Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro