CEP dos correios on line
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CEP dos correios on line
Acrescentei um parâmetro no webservice
www.jpatecnologia.com.br/cep.asp?cep=00 ... &clipper=1
se passar clipper=1, retorna tudo em maiúsculas sem acento.
Até que não é muito diferente do Clipper, nessa parte. O difícil é lembrar do "then", e do "end if" separado
If cCipper = "1" Then
cpEndereco = TiraAcento(cpEndereco)
cpBairro = TiraAcento(cpBairro)
cpCidade = TiraAcento(cpCidade)
End If
www.jpatecnologia.com.br/cep.asp?cep=00 ... &clipper=1
se passar clipper=1, retorna tudo em maiúsculas sem acento.
Até que não é muito diferente do Clipper, nessa parte. O difícil é lembrar do "then", e do "end if" separado
If cCipper = "1" Then
cpEndereco = TiraAcento(cpEndereco)
cpBairro = TiraAcento(cpBairro)
cpCidade = TiraAcento(cpCidade)
End If
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
CEP dos correios on line
José, agora sim!!! Funcionou! Com certeza nossos colegas clippeiros poderão usar esta ótima ferramenta. Parabéns.
Abraços.
Pois é, hoje mesmo eu programando em JavaScript me esbarrei no else if que é separado, eu não enxergava o erro que conseguentemente coloquei como no clipper elseif. Nossa cabeça pira com estas mesclagens de linguagens. Mais é assim mesmo.JoséQuintas escreveu:"end if" separado
Abraços.
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
CEP dos correios on line
Olá José,
No meu caso mantenho acentuação, mas Meus Parabéns Também, ficou Show de Bola.
No meu caso mantenho acentuação, mas Meus Parabéns Também, ficou Show de Bola.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CEP dos correios on line
Por mais que eu tenha avisado, tem gente insistindo em abusar atualizando base local.
E o "abusador" nem sequer quis ter o trabalho de eliminar CEPs inválidos.
Tá consultando CEPs do tipo "08 -", "078__-___", e outros inválidos.
E o mais curioso é que os correios retornam resultado, o que acaba cadastrando lixo na minha base.
Antes que os correios bloqueiem meu ip de webservice, estou bloqueando esse ip.
Vou ter que pensar num esquema automático pra limitar consultas.
E o "abusador" nem sequer quis ter o trabalho de eliminar CEPs inválidos.
Tá consultando CEPs do tipo "08 -", "078__-___", e outros inválidos.
E o mais curioso é que os correios retornam resultado, o que acaba cadastrando lixo na minha base.
Antes que os correios bloqueiem meu ip de webservice, estou bloqueando esse ip.
Vou ter que pensar num esquema automático pra limitar consultas.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
CEP dos correios on line
Olá José,
É uma pena!!!
Da minha parte posso garantir que não estou atualizando base, e nem algum cliente brincando com CEP, já que meu sistema permite cep vazio, ou necessariamente todos os digitos. Que pena.
Para o "abusador", basta baixar a lista disponível na internet, pelo menos terá uma base de ceps que se não me engano é de 2005: Lista de CEPs
É uma pena!!!
Da minha parte posso garantir que não estou atualizando base, e nem algum cliente brincando com CEP, já que meu sistema permite cep vazio, ou necessariamente todos os digitos. Que pena.
Para o "abusador", basta baixar a lista disponível na internet, pelo menos terá uma base de ceps que se não me engano é de 2005: Lista de CEPs
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CEP dos correios on line
Minha preocupação é só dos correios bloquearem.
Resolvi de um modo simples, pegando leve:
Um contador de consultas por IP, que é zerado a cada hora.
Se um IP ultrapassar o limite, faz uso somente da base local.
Mas volta ao normal na hora seguinte.
Resolvi de um modo simples, pegando leve:
Um contador de consultas por IP, que é zerado a cada hora.
Se um IP ultrapassar o limite, faz uso somente da base local.
Mas volta ao normal na hora seguinte.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
CEP dos correios on line
Olá José,
Mas não está funcionando. Tentei testar esses ceps aqui de paulínia, que passou a ter ceps por rua em setembro/2011, e não retorna nada.
Ceps de Paulínia - SP:
13140-810 Angela Pigatto Ferro - r - Sta Terezinha
13142-472 Angelina Gatti Breda - r - Vl Mte Alegre
13142-380 Angelina Valério Furlan - r - Vl Mte Alegre
Já se digito o cep 13140-000, que era antes o da cidade, retorna a rua Dom Pedro I, mas porque está em seu banco de dados por testes que fiz anteriormente.
Mas não está funcionando. Tentei testar esses ceps aqui de paulínia, que passou a ter ceps por rua em setembro/2011, e não retorna nada.
Ceps de Paulínia - SP:
13140-810 Angela Pigatto Ferro - r - Sta Terezinha
13142-472 Angelina Gatti Breda - r - Vl Mte Alegre
13142-380 Angelina Valério Furlan - r - Vl Mte Alegre
Já se digito o cep 13140-000, que era antes o da cidade, retorna a rua Dom Pedro I, mas porque está em seu banco de dados por testes que fiz anteriormente.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
CEP dos correios on line
Está mesmo com problema, tentei o cep da minha rua 20735-050 e está retornando isso:
Erro de tempo de execução do Microsoft VBScript erro '800a01a8'
Objeto necessário: 'cnConexao'
/cep.asp, line 127
Erro de tempo de execução do Microsoft VBScript erro '800a01a8'
Objeto necessário: 'cnConexao'
/cep.asp, line 127
►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)
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)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CEP dos correios on line
Aprontei...
Fiquei testando o limite sempre com o mesmo CEP e não percebi que baguncei a consulta de CEP novo.
Já fiz a correção. Desculpem a falha.
A consulta nova:
<cep>13140-810</cep>
<logradouro>Rua Angela Pigatto Ferro</logradouro>
<bairro>Santa Terezinha</bairro>
<cidade>Paulínia</cidade>
<uf>SP</uf>
<infinc>2012/10/04 22:52 </infinc>
<tot>10</tot>
<stat>online</stat>
<infinc></infinc> é a data/hora de consulta nos correios
<tot></tot> é a quantidade de consultas do IP durante uma hora
<stat>online</stat> significa que não ultrapassou o limite
Fiquei testando o limite sempre com o mesmo CEP e não percebi que baguncei a consulta de CEP novo.
Já fiz a correção. Desculpem a falha.
A consulta nova:
<cep>13140-810</cep>
<logradouro>Rua Angela Pigatto Ferro</logradouro>
<bairro>Santa Terezinha</bairro>
<cidade>Paulínia</cidade>
<uf>SP</uf>
<infinc>2012/10/04 22:52 </infinc>
<tot>10</tot>
<stat>online</stat>
<infinc></infinc> é a data/hora de consulta nos correios
<tot></tot> é a quantidade de consultas do IP durante uma hora
<stat>online</stat> significa que não ultrapassou o limite
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
CEP dos correios on line
Certinho José.
Meu sistema faz a busca na base local, e em caso de logradouro vazio uso seu webservice. Ficou muito legal o retorno do status do IP, embora no meu caso acho dífícil alguém exceder, mesmo assim permitirá avisar o cliente que o limite foi excedido.
Novamente, Parabéns e obrigado pela iniciativa.
Meu sistema faz a busca na base local, e em caso de logradouro vazio uso seu webservice. Ficou muito legal o retorno do status do IP, embora no meu caso acho dífícil alguém exceder, mesmo assim permitirá avisar o cliente que o limite foi excedido.
Novamente, Parabéns e obrigado pela iniciativa.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
CEP dos correios on line
Olá José,
Para usar o loadXML eu tive retirar do responseText a tag <br> e </br> e acrescentar a tag <inixml> no inicio e </inixml> no final.
Para usar o loadXML eu tive retirar do responseText a tag <br> e </br> e acrescentar a tag <inixml> no inicio e </inixml> no final.
Código: Selecionar todos
cCep:="20735050"
try
oPg := Win_OleCreateObject("Microsoft.XMLHTTP")
oPg:Open("GET","http://www.jpatecnologia.com.br/cep.asp?cep=" + Transform(cCep,"@R 99999-999")+"&clipper=1",.F.)
oPg:Send()
cBuf :=StrTran(oPg:responseText,'<br>')
cBuf :=StrTran(cBuf,'</br>')
cBuf := '<inixml>'+cBuf+'</inixml>'
oXMLDoc := TOLEAUTO():New("Microsoft.XMLDOM")
oXMLDoc:async := .f.
oXMLDoc:loadXML( cBuf )
catch
Alert("Erro! Ao tentar acessar o WEB SERVICE consulta de cep, tente mais tarde.")
end
cUf := Upper(oXMLDoc:getElementsByTagName( "uf" ):item(0):Text)
cCid := Upper(oXMLDoc:getElementsByTagName( "cidade" ):item(0):Text)
cBai := Upper(oXMLDoc:getElementsByTagName( "bairro" ):item(0):Text)
cEnd :=Upper(oXMLDoc:getElementsByTagName( "logradouro" ):item(0):Text)
►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)
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)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CEP dos correios on line
Um pouquinho de estatística do webservice de CEP, desde que implementei o controle de IP.
Não preciso nem dizer o que considerei abuso.... rs
Obs. O IP do primeiro lugar continua consultando 24 horas sem parar, mas nos limites (se meu controle estiver certo).
Não preciso nem dizer o que considerei abuso.... rs
|    |  Consultas por IP:  |
|---|---|
|  IP 1  |  15.023  |
|  IP 2  |  243  |
|  IP 3  |  223  |
|  IP 4  |  220  |
|  IP 5  |  180  |
|  IP 6  |  120  |
|  IP 7  |  94  |
|  IP 8  |  63  |
|  IP 9  |  44  |
|  IP 10  |  43  |
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CEP dos correios on line
Sobre o XML de resposta... é que fiz um equilíbrio entre XML normal e poder visualizar na página do site.
Uma função pra ajudar a pegar o conteúdo seria esta:
Obs. Criei durante a digitação aqui no fórum, então pode precisar de ajuste.
Pra ler XML de NFE precisaria de mais ajustes.
Uma função pra ajudar a pegar o conteúdo seria esta:
Código: Selecionar todos
cUf := XmlNode(cXml,"uf")
cCidade := XmlNode(cXml,"cidade")
cEndereco := XmlNode(cXml,"bairro")
cLogradouro := XmlNode(cXml,"logradouro")
FUNCTION XmlNode(cTexto,cTag)
LOCAL cTagStart, cTagEnd, nPosStart, nPosEnd, cConteudo
cTagStart := "<" + cTag + ">"
cTagEnd := "</" + cTag + ">"
nPosStart := At(cTagStart,cTexto)
nPosEnd := At(cTagEnd,cTexto)
IF nStart != 0 .AND. nEnd != 0
nPosStart := nStart + Len(cTagStart)
nPosEnd -= 1
cConteudo := Substr(cTexto,nPosStart,nPosEnd-nPosStart+1)
ELSE
cConteudo := ""
ENDIF
RETURN cConteudo
Pra ler XML de NFE precisaria de mais ajustes.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
Kiko Fernandes
- Usuário Nível 3

- Mensagens: 213
- Registrado em: 24 Out 2008 22:41
- Localização: Foz do Iguaçu
CEP dos correios on line
José, boa tarde!
Estive olhando esta opção e o link que vc disponibilizou e fiquei com algumas dúvidas.
Posso colocar este recurso como uma opção no meu sistema e distribuir aos clientes?
Poderá gerar alguma complicação a teu link esta opção?
Teria algum outro cuidado que vc recomendaria além da consulta abusiva?
Obrigado!
Estive olhando esta opção e o link que vc disponibilizou e fiquei com algumas dúvidas.
Posso colocar este recurso como uma opção no meu sistema e distribuir aos clientes?
Poderá gerar alguma complicação a teu link esta opção?
Teria algum outro cuidado que vc recomendaria além da consulta abusiva?
Obrigado!
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CEP dos correios on line
É só isso.
O limite é zerado a cada hora, então no uso normal vai tranquilo.
E se abusar, a resposta vai ser da base de dados, e não dos correios.
Pra determinados CEPs nem faz diferença.
Aproveitei pra dar uma olhada nas quantidades de consulta:
5 que mais consultaram no dia: 468, 206, 18, 8, 6.
5 que mais consultaram no mês: 3.660, 932, 66, 64, 48
O mesmo IP continua sendo o top, consultando mais que todos os outros juntos, mas bem menos do que no início.
O limite é zerado a cada hora, então no uso normal vai tranquilo.
E se abusar, a resposta vai ser da base de dados, e não dos correios.
Pra determinados CEPs nem faz diferença.
Aproveitei pra dar uma olhada nas quantidades de consulta:
5 que mais consultaram no dia: 468, 206, 18, 8, 6.
5 que mais consultaram no mês: 3.660, 932, 66, 64, 48
O mesmo IP continua sendo o top, consultando mais que todos os outros juntos, mas bem menos do que no início.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/

