Página 1 de 1

Pesquisar C.E.P

Enviado: 21 Mai 2008 17:56
por HASA
Olá pessoal, será que tem jeito de pesquisar e capturar os dados de um cep direto do site dos correios, sem abrir janelas tudo em segundo plano ?
:%
Honório

Re: PESQUISAR C.E.P

Enviado: 21 Mai 2008 18:25
por sygecom
Olá Honorio,
Do site dos correios eu não sei, mas veja se o exemplo em anexo lhe ajuda.

Obs:Estou usando e esta funcionando muito bem até agora.

Abraços
Leonardo Machado

Re: PESQUISAR C.E.P

Enviado: 25 Mai 2008 19:37
por HASA
Valeu Leo, :D
Creio que outros colegas estão usando também pois no News do Xharbour Espanhol postaram para mim tbm , realmente é show, valeu mais uma vez,
:{

Re: Pesquisar C.E.P

Enviado: 25 Mai 2008 22:53
por rochinha
Amiguinhos

Um ajuste adicional.

Código: Selecionar todos

...
      oPg := TOLEAuto():New("Microsoft.XMLHTTP")
      oPg:Open("GET","http://cep.republicavirtual.com.br/web_cep.php?cep=" + cCep + "&formato=xml",.F.)
      oPg:Send()
      cBuf := oPg:ResponseText // responseBody // Response Body nao funcionou com Windows Server 2003 e SOAP Toolkit 3.0

      oXMLDoc := TOLEAUTO():New("Microsoft.XMLDOM") 
      oXMLDoc:async := .f. 
      lSuccess := oXMLDoc:loadXML( cBuf ) 

      x := oXMLDoc:getElementsByTagName( "webservicecep" ) 
      if oXMLDoc:getElementsByTagName( "resultado" ):Item(0):Text <> "1"
         ? "Nenhum resultado foi retornado."
      else
         ?oXMLDoc:getElementsByTagName( "uf" ):Item(0):Text
         ?oXMLDoc:getElementsByTagName( "cidade" ):Item(0):Text
         ?oXMLDoc:getElementsByTagName( "bairro" ):Item(0):Text
         ?oXMLDoc:getElementsByTagName( "tipo_logradouro" ):Item(0):Text
         ?oXMLDoc:getElementsByTagName( "logradouro" ):Item(0):Text
      endif
...
Neste caso faço uso do SOAP Toolkit para me trazer o conteudo das tags do XML usando XMLDOM.

O uso de xmlHTTP se deve ao fato do MSXML esta bem instalado e atualizado, portanto pode não funcionar a contento caso o S.O. não esteja com atualizações em dia.

Para ver de forma mais pratica o uso deste esquema vejam o exemplo abaixo:

Lembro que meu sistema é composto de Windows Server 2003 SP2 e .NET 1.0 e 2.0 e SOAP Toolkit 3.0.

Codigo exemplo:

Código: Selecionar todos

...
Function main() 

    local RespText, objXMLHTTP 

    oXMLDoc := TOLEAUTO():New("Microsoft.XMLDOM") 
      
    // Allow the document to complete loading 
    oXMLDoc:async := .f. 

    lSuccess := oXMLDoc:load( "books.xml" ) 

    x := oXMLDoc:getElementsByTagName( "book" ) 
    y := oXMLDoc:getElementsByTagName( "author" ) 

    for i = 1 to x:length 
        agendamentoDetails := x 
        ? agendamentoDetails:Item(i-1):NodeName + " = " + agendamentoDetails:Item(i-1):Text 
        ? y:Item(i-1):Text 
    next 

   return nil 
...


Tabela XML:

Código: Selecionar todos

<?xml version="1.0" encoding="ISO-8859-1"?> 
<bookstore> 
   <book category="COOKING"> 
      <title lang="en">Everyday Italian</title> 
      <author>Giada De Laurentiis</author> 
      <year>2005</year> 
      <price>30.00</price> 
   </book> 
   <book category="CHILDREN"> 
      <title lang="en">Harry Potter</title> 
      <author>J K. Rowling</author> 
      <year>2005</year> 
      <price>29.99</price> 
   </book> 
   <book category="WEB"> 
      <title lang="en">XQuery Kick Start</title> 
      <author>James McGovern</author> 
      <year>2003</year> 
      <price>49.99</price> 
   </book> 
   <book category="WEB"> 
      <title lang="en">Learning XML</title> 
      <author>Erik T. Ray</author> 
      <year>2003</year> 
      <price>39.95</price> 
   </book> 
   <book> 
      <title lang="en">Learning XML</title> 
      <author>Erik T. Ray</author> 
      <year>2003</year> 
      <price>39.95</price> 
   </book> 
</bookstore> 

Re: Pesquisar C.E.P

Enviado: 26 Mai 2008 08:48
por HASA
:))
Obrigado,
Valeu !!