PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 25 → Aula 1058 - Windev - Webservice - 009 - Buscar Cep WebService Correio
Aula 1058 - Windev - Webservice - 009 - Buscar Cep WebService Correio
Débuté par amarildo, 06 fév. 2017 09:10 - 2 réponses
Membre enregistré
535 messages
Popularité : +14 (14 votes)
Posté le 06 février 2017 - 09:10
// Nessa Aula vou Mostrar como Buscar o Cep no correio Via WebService.
// Essa Dica peguei no Curso do pedrosão.

//Buscar Cep WebService

_url is string="http://correiosapi.apphb.com/cep/"+EDT_cep
solicitacao is a HTTPRequest //Inicia uma solicitacao HTTP em um Servidor.
resposta is a httpResponse // Recuperar a resposta do httprequest
solicitacao..URL=_url
solicitacao..Method=httpGet
resposta=RESTSend(solicitacao) // Envia uma solicitação e aguarda a resposta do servidor
IF resposta..StatusCode=200 THEN
ELSE
Info(resposta..StatusCode+CR+resposta..DescriptionStatusCode)
END
retorno is ANSI string=UTF8ToString(resposta..Content)
SAI_TextoJson=Utilitarios_matos_wdk.remove_acento_util_wdk(retorno)
// Estou colocando retorno no meu texto Json
_cep_ is structure
cep is string
tipoDeLogradouro is string
logradouro is string
bairro is string
cidade is string
estado is string
END
//Criando uma Estrutura Cep
Estrutura_json is _cep_
Deserialize(Estrutura_json,SAI_TextoJson,psdJSON)
EDT_rua=Estrutura_json.logradouro
EDT_bairro=Estrutura_json.bairro
EDT_Cidade=Estrutura_json.cidade
EDT_Estado=Estrutura_json.estado
EDT_TipodeLogradouro=Estrutura_json.tipoDeLogradouro

//{"cep":"93410130","tipoDeLogradouro":"Rua","logradouro":"Paraíba",
//"bairro":"Pátria Nova","cidade":"Novo Hamburgo","estado":"RS"}
//200: solicitacao processada com êxito
//301: documento movido permanentemente
//302: Documento mudou temporariamente
//403: O servidor entendeu o pedido, mas recusa-se a executá-lo.
//404: não encontrado
//500: erro interno do servidor
//503: Serviço temporariamente indisponível ou manutenção


http://doc.windev.com/en-US/…
http://doc.pcsoft.fr/fr-FR/?1000021165&name=httpresponse_type_variable
http://doc.windev.com/en-US/…

http://windevdesenvolvimento.blogspot.com.br/2017/02/aula-1058-windev-webservice-010-buscar.html

Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 08 février 2017 - 16:13
:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 30 août 2017 - 05:12
//server
arr_Resultados is array of string

//Declara webservice//

gsValorMemorizado is string = 1 //Necessario um valor

DeclareWebserviceContext(gsValorMemorizado) //Principal funcao que declara webservice//

DeclareWebserviceContext(arr_Resultados) //Principal funcao que declara webservice//




Procedure Ws_BuscaEndereco(Token, Endereco)

//Variaveis
arrResultado is array of string
ok is boolean = False
X is int = 0
nTokenOk is int = 0
sTabela is string = "Enderecos"
Resultado is string = ""
sErro is string = ""
GloToken is string = ""

OkConn is boolean = False

OkConn = HConnectionOpen(MyHfsql)

ok = HExecuteQuery(QRY_Select_Cliente,hQueryWithoutHFCorrection,Token)

IF ok = True THEN

FOR EACH QRY_Select_Cliente

IF HFound(QRY_Select_Cliente) = True AND Token = QRY_Select_Cliente.Token THEN

GloToken = QRY_Select_Cliente.Token

ELSE

GloToken = ""

END

END

END

//Code
IF Token <> "" AND Token = GloToken

IF OkConn = True THEN

ok = HExecuteQuery(QRY_Select_Cliente,MyHfsql,hQueryWithoutHFCorrection,Token)

IF ok = True THEN

FOR EACH QRY_Select_Cliente

IF HFound(QRY_Select_Cliente) = True THEN

ok = HExecuteQuery(QRY_Select_CEP,MyHfsql,hQueryWithoutCorrection,Endereco)

IF ok =True THEN

Resultado = "<Xml><Retorno>"

FOR EACH QRY_Select_CEP

IF HFound(QRY_Select_CEP) = True AND X = 0

X += 1

Resultado += ws_xml_registro_comeco(X)

Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Sequencial,"Sequencial")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.LogradouroUpper,"LogradouroUpper")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.LogradouroAbrev,"LogradouroAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Logradouro,"Logradouro")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.LogradouroCompl,"LogradouroCompl")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Fonetica,"Fonetica")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.LogradouroTipo,"LogradouroTipo")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.CEP,"CEP")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Bairro,"Bairro")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.BairroAbrev,"BairroAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.IDCidade,"IDCidade")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Cidade,"Cidade")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.SubCidadeAbrev,"SubCidadeAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.SubCidade,"SubCidade")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.CodIBGECid,"CodIBGECid")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.CodIBGEUF,"CodIBGEUF")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.UF,"UF")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Pais,"Pais")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.LogradouroIniciais,"LogradouroIniciais")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.NumeroInicial,"NumeroInicial")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.NumeroFinal,"NumeroFinal")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.DMSLatitude,"DMSLatitude")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.DMSLongitude,"DMSLongitude")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.GDLatitude,"GDLatitude")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.GDLongitude,"GDLongitude")

Resultado += ws_xml_registro_final()

END

END

IF X = 0 THEN
Resultado = ws_zero_registros(sTabela)
END

Resultado += "<TOTAL>"+X+"</TOTAL>" //Total de Registros para usar em barras de progresso
Resultado += "</Retorno></Xml>"

ELSE

Resultado += "<Error>Erro 002 tabela<Error>"

END

ELSE

Resultado += "<Error>Erro 003 tabela<Error>"

END


END


ELSE

Resultado += "<Error>Erro 004 tabela<Error>"

END


ELSE

Resultado += "<Error>Erro 005 Conexao<Error>"

END

ip is string = WebserviceClientIPAddress(False)
//Verdadeiro para recuperar o endereço inicial especificado no cabeçalho HTTP,
//Falso (valor padrão) para recuperar o Endereco ip na variável de ambiente "REMOTE_ADDR" definida pelo servidor da Web.

ok = HExecuteQuery(QRY_Insert_Log,hQueryWithoutHFCorrection,DateSys()+TimeSys(),ip,Token,Endereco)

HReset(QRY_Select_CEP) // <----- Limpar atenção

HReset(QRY_Select_Cliente) // <----- Limpar atenção

HConnectionClose(ConnNativa)

ELSE

Resultado += "<Error>Token invalido<Error>"

END

nTamanho is int = Length(Resultado)

Add(arrResultado,Resultado)

RESULT (arrResultado)



SELECT
enderecoscorreios.Sequencial AS Sequencial,
enderecoscorreios.LogradouroUpper AS LogradouroUpper,
enderecoscorreios.LogradouroAbrev AS LogradouroAbrev,
enderecoscorreios.Logradouro AS Logradouro,
enderecoscorreios.LogradouroCompl AS LogradouroCompl,
enderecoscorreios.Fonetica AS Fonetica,
enderecoscorreios.LogradouroTipo AS LogradouroTipo,
enderecoscorreios.CEP AS CEP,
enderecoscorreios.Bairro AS Bairro,
enderecoscorreios.BairroAbrev AS BairroAbrev,
enderecoscorreios.IDCidade AS IDCidade,
enderecoscorreios.Cidade AS Cidade,
enderecoscorreios.SubCidadeAbrev AS SubCidadeAbrev,
enderecoscorreios.SubCidade AS SubCidade,
enderecoscorreios.CodIBGECid AS CodIBGECid,
enderecoscorreios.CodIBGEUF AS CodIBGEUF,
enderecoscorreios.UF AS UF,
enderecoscorreios.Pais AS Pais,
enderecoscorreios.LogradouroIniciais AS LogradouroIniciais,
enderecoscorreios.NumeroInicial AS NumeroInicial,
enderecoscorreios.NumeroFinal AS NumeroFinal,
enderecoscorreios.DMSLatitude AS DMSLatitude,
enderecoscorreios.DMSLongitude AS DMSLongitude,
enderecoscorreios.GDLatitude AS GDLatitude,
enderecoscorreios.GDLongitude AS GDLongitude,
MATCH(enderecoscorreios.LogradouroUpper, enderecoscorreios.LogradouroAbrev, enderecoscorreios.Logradouro, enderecoscorreios.LogradouroCompl, enderecoscorreios.Fonetica, enderecoscorreios.LogradouroTipo, enderecoscorreios.CEP, enderecoscorreios.Bairro, enderecoscorreios.BairroAbrev, enderecoscorreios.Cidade, enderecoscorreios.SubCidadeAbrev, enderecoscorreios.SubCidade, enderecoscorreios.UF, enderecoscorreios.Pais, enderecoscorreios.LogradouroIniciais) AGAINST({ParamKFulltext}) AS FullTextPertinence
FROM
enderecoscorreios
WHERE
FullTextPertinence > {ParamFullTextPertinence}
ORDER BY
FullTextPertinence DESC




SELECT
clientes.id AS id,
clientes.Nome AS Nome,
clientes.Email AS Email,
clientes.Celular AS Celular,
clientes.Token AS Token
FROM
clientes
WHERE
clientes.Token = {ParamToken}




INSERT INTO wslog
(
datahora,
ip,
Token,
acao
)
VALUES
(
{Paramdatahora},
{Paramip},
{ParamToken},
{Paramacao}
)


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/