PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 25 → USANDO O WEBSERVICE DOS CORREIOS
USANDO O WEBSERVICE DOS CORREIOS
Iniciado por Boller, 28,feb. 2015 02:27 - 3 respuestas
Miembro registrado
3.742 mensajes
Publicado el 28,febrero 2015 - 02:27
WEBSERVICE DOS CORREIOS
#####################

------------------------------------------------------------------------------
----- PROCEDURE WEBSERVICE DOS CORREIOS
------------------------------------------------------------------------------
Procedure BuscarCep(fCEP)

cep is string=fCEP

sRetorno, sCep, sLogradouro, sBairro, sCidade, sUf, sIbge is string

IF NOT HTTPRequest("http://m.correios.com.br/movel/buscaCepConfirma.do?cepEntrada="+cep+"&tipoCep=&cepTemp=&metodo=buscarCep") THEN //EXECUTA REQUISIÇÃO HTTP
RETURN
END

sArqhtml is string=HTTPGetResult()

arrARRAYRET is array of string

sArqhtml=Replace(sArqhtml,Charact(10),"") //remove </n>

StringToArray(sArqhtml,arrARRAYRET,CR) //quebra a string em linhas

FOR EACH DADOS OF arrARRAYRET //faz uma verredura na array e localiza a palavra anterior

IF StringCount(DADOS,"anterior") THEN

sRetorno=DADOS//armazena o conteudo da linha na variavel sretorno

BREAK

END

END
sLogradouro=retorna_valor(sRetorno,"Logradouro:")

sCep=retorna_valor(sRetorno,"CEP:")

sCidade=ExtractString(retorna_valor(sRetorno,"Localidade / UF:"),1,"/")

sUf=ExtractString(retorna_valor(sRetorno,"Localidade / UF:"),2,"/")

sBairro=retorna_valor(sRetorno,"Bairro:")

// = stc_endereco+" "+sLogradouro

//s_cidade = stc_cidade+" "+sCidade

//s_UF = Stc_uf+" "+suf

//s_bairro = stc_bairro+" "+sbairro

Info((sCep+CR+sLogradouro+CR+sBairro+CR+sCidade+CR+sUf+CR+sIbge),charsetAnsi)

------------------------------------------------------------------------------
----- PROCEDURE COMPLEMENTAR - WEBSERVICE DOS CORREIOS
------------------------------------------------------------------------------
Procedure retorna_valor(conteudo,sLogradouro)

sRetorno is string

arrARRAYRET is array of string

sCampobusca is string=[
"respostadestaque">
]

IF Contains(conteudo,sLogradouro) THEN

sRetorno=conteudo[[Position(conteudo,sLogradouro) TO ]]
StringToArray(sRetorno,arrARRAYRET,sCampobusca)

IF arrARRAYRET..Occurrence >= 2 THEN

sRetorno=arrARRAYRET[2]

sRetorno=NoSpace(ExtractString(sRetorno,1,"<"))

ELSE

sRetorno=""

END

END

RESULT(sRetorno)
Publicado el 06,octubre 2015 - 20:03
boa tarde, não funciona estou inclusive usando o exemplo do prof. Neri com esses comandos... o que pode ser?
Miembro registrado
123 mensajes
Publicado el 06,octubre 2015 - 22:37
Pode ser que os Correios tenham modificado o Webservice deles
Miembro registrado
3.742 mensajes
Publicado el 07,octubre 2015 - 03:02
Prezados

A politica dos Correios é sempre de mudar o webservice deles devido eles venderem esses dados via download ouy via DVD no valor de 2mil reais mais ou menos. Portanto recomendo não utilizar. Na época que eu fiz funcionava perfeitamente, mas ja é a 4 vez que eles mudam... nós temos a base de dados comprada em nosso sistema ERP e a utilizamos em nosso proprio banco de dados.

Caso mesmo assim voces não achem uma boa ideia usem esse meu outro post:

http://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/242-busca-cep-republica-virtual-cep-exemplos/read.awp…

Funciona perfeitamente e o mesmo autor do serviço de consulta de CEP se revoltou por nao existir isso livre e criou o site Replica vitual de cep.

Outra vez muito obrigado Willian por me ajudar no Forum...

[ ]´s

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
______________________________________________