PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 25 → USANDO O WEBSERVICE DOS CORREIOS
USANDO O WEBSERVICE DOS CORREIOS
Débuté par adrianoboller, 28 fév. 2015 02:27 - 3 réponses
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 28 février 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)
Posté le 06 octobre 2015 - 20:03
boa tarde, não funciona estou inclusive usando o exemplo do prof. Neri com esses comandos... o que pode ser?
Membre enregistré
123 messages
Popularité : +46 (46 votes)
Posté le 06 octobre 2015 - 22:37
Pode ser que os Correios tenham modificado o Webservice deles
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 07 octobre 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
______________________________________________