Jump to content
Fórum Script Brasil
  • 0
Sign in to follow this  
InfoCidreira

WebService em VB6

Question

E ai pessoal, sou novo aqui, agora faço parte desta equipe. Segue um codigo que acredito que vai ajudar algumas pessoas, qualquer duvida posta ai.

Primeiro, adicione a referência Microsoft XML, v6.0.

Private Sub cbBusca_Click()
    
    Dim obj As MSXML2.ServerXMLHTTP
    Dim objLerXml As MSXML2.DOMDocument
    
    
    Set obj = New MSXML2.ServerXMLHTTP
    Set objLerXml = New MSXML2.DOMDocument
    'query_string
    url = "http://republicavirtual.com.br/web_cep.php?cep=" & txtCEP & "&formato=XML"
    
    obj.open "GET", url
    obj.send
        
    'se ocorreu um erro HTTP
    If obj.Status >= 400 And obj.Status <= 505 Then
      MsgBox "Erro Ocorrido : " & obj.Status & " - " & obj.statusText
      Exit Sub
    Else
        objLerXml.loadXML (obj.responseText)
    End If
        
    Set VB_RESULT = objLerXml.selectSingleNode("//resultado")
    
    If VB_RESULT.Text <> 0 Then
    
        Set VB_UF = objLerXml.selectSingleNode("//uf")
        Set VB_CIDADE = objLerXml.selectSingleNode("//cidade")
        Set VB_BAIRRO = objLerXml.selectSingleNode("//bairro")
        Set VB_RUA = objLerXml.selectSingleNode("//tipo_logradouro")
        Set VB_LOGRADOURO = objLerXml.selectSingleNode("//logradouro")
    
        txtUf.Text = VB_UF.Text
        txtCidade.Text = VB_CIDADE.Text
        txtBairro.Text = VB_BAIRRO.Text
        txtLogradouro.Text = VB_RUA.Text & " " & VB_LOGRADOURO.Text
    Else
        MsgBox "Serviço indisponível - cep inválido"
    End If
        
        
End Sub

Edited by kuroi
Adicionar tag CODE

Share this post


Link to post
Share on other sites

14 answers to this question

Recommended Posts

  • 0

ou info, você esqueceu de avisar qual a referencia q tem q adicionar.

acho q seria a Microsoft XML, v6.0, não??

posso editar o seu tópico só pra colocar essa informacao?? ou você mesmo pode editar ai. falou.

Share this post


Link to post
Share on other sites
  • 0
ou info, você esqueceu de avisar qual a referencia q tem q adicionar.

acho q seria a Microsoft XML, v6.0, não??

posso editar o seu tópico só pra colocar essa informacao?? ou você mesmo pode editar ai. falou.

Realmente, pode alterar sim, não tem problema. Obrigado por apontar.

Valeu e até mais.

Share this post


Link to post
Share on other sites
  • 0
Gostaria de saber na rotina acima citada a variável VB_RESULT qual a designação da mesma?

String, long, etc.

tb queria saber isso...

o metodo selectSingleNode() tem o retorno do tipo MSXML2.IXMLDOMNode

então o VB_RESULT deveria tb ser declarado desse tipo.

Share this post


Link to post
Share on other sites
  • 0

Olá!

Estou tentando utilizar este código (me parece realmente muito útil), porém, não consigo identificar como declarar os seguintes itens:

VB_RESULT (qual tipo usar?)

Acredito que o VB_CEP e outros são do mesmo tipo, correto?

Alguém poderia ajudar-me?

Obrigado!

Share this post


Link to post
Share on other sites
  • 0

mano acabei de escrever no post de cima??

você tentou com o MSXML2.IXMLDOMNode??

se não for isso e se você ta querendo declara so por causa do Option Explicit, então poe Variant mesmo e já era.

Share this post


Link to post
Share on other sites
  • 0
mano acabei de escrever no post de cima??

você tentou com o MSXML2.IXMLDOMNode??

se não for isso e se você ta querendo declara so por causa do Option Explicit, então poe Variant mesmo e já era.

oi

- tentei dos dois modos mas não deu certo.

frasao

Share this post


Link to post
Share on other sites
  • 0

Achei o problema que esta acontecendo com este código. mas não consegui arrumar ou achar um jeito para arrumar

o sistema funciona perfeitamente quando a informação que o XML retorna não traz nenhum caracter especial (ã, í, õ), agora se o nome da cidade ou nome da rua tiver algum desses caracteres o "loadXML" não consegue carregar o conteúdo do XML dando o erro.

alguém sabe como resolver ?

Share this post


Link to post
Share on other sites
  • 0

Também identifiquei o erro como o caiomor disse...

Quando algum dado tiver acentuação ocorre o erro:

Run-time error '91':

Object variable or With block variable not set

Alguém encontrou uma solução ?

Grato.

Share this post


Link to post
Share on other sites
  • 0

Pessoal preciso de ajuda

Nessa brincadeira de web service eu ainda estou bem no inicio. Tenho uma aplicação em VB6 e preciso ler uma web service que me traz esse resultado abaixo

<Code>0</Code>
<Success>true</Success>
<Printers>
<Printer>
<SerialNumber>AK18054352</SerialNumber>
<Department/>
<IPAddress>10.10.6.55</IPAddress>
<GeneralCountStartDateOfCapture>2017-09-20T17:48:32.287</GeneralCountStartDateOfCapture>
<GeneralCountEndDateOfCapture>2017-09-21T16:57:31.317</GeneralCountEndDateOfCapture>
<GeneralCountStart>18943</GeneralCountStart>
<GeneralCountEnd>18987</GeneralCountEnd>
<MonoCountStartDateOfCapture>2017-09-20T17:48:32.287</MonoCountStartDateOfCapture>
<MonoCountEndDateOfCapture>2017-09-21T16:57:31.317</MonoCountEndDateOfCapture>
<MonoCountStart>18943</MonoCountStart>
<MonoCountEnd>18987</MonoCountEnd>
<ColorCountStartDateOfCapture>0001-01-01T00:00:00</ColorCountStartDateOfCapture>
<ColorCountEndDateOfCapture>0001-01-01T00:00:00</ColorCountEndDateOfCapture>
<ColorCountStart>0</ColorCountStart>
<ColorCountEnd>0</ColorCountEnd>
<ScanCountStartDateOfCapture>0001-01-01T00:00:00</ScanCountStartDateOfCapture>
<ScanCountEndDateOfCapture>0001-01-01T00:00:00</ScanCountEndDateOfCapture>
<ScanCountStart>0</ScanCountStart>
<ScanCountEnd>0</ScanCountEnd>
<A3MonoCountStartDateOfCapture>0001-01-01T00:00:00</A3MonoCountStartDateOfCapture>
<A3MonoCountEndDateOfCapture>0001-01-01T00:00:00</A3MonoCountEndDateOfCapture>
<A3MonoCountStart>0</A3MonoCountStart>
<A3MonoCountEnd>0</A3MonoCountEnd>
<A3ColorCountStartDateOfCapture>0001-01-01T00:00:00</A3ColorCountStartDateOfCapture>
<A3ColorCountEndDateOfCapture>0001-01-01T00:00:00</A3ColorCountEndDateOfCapture>
<A3ColorCountStart>0</A3ColorCountStart>
<A3ColorCountEnd>0</A3ColorCountEnd>
</Printer>
</Printers>
</BaseResponse>
 
No modelo desse exemplo está bem mais simplificado o resultado, eu gostaria de saber como consigo ler isso com esse exemplo do comando que vocês fizeram nesse tópico. Eu fiz os testes com o CEP e tudo funciona bem. Tem algum segredo que possa me ajudar? é uma urgência por favor

Share this post


Link to post
Share on other sites
  • 0

Private Sub Command1_Click()
Dim obj As MSXML2.ServerXMLHTTP
    Dim objLerXml As MSXML2.DOMDocument
    
    
    Set obj = New MSXML2.ServerXMLHTTP
    Set objLerXml = New MSXML2.DOMDocument
    'query_string
    url = "http://republicavirtual.com.br/web_cep.php?cep=" & txtCEP & "&formato=XML"
    
    obj.open "GET", url
    obj.send
        
    'se ocorreu um erro HTTP
    If obj.Status >= 400 And obj.Status <= 505 Then
      MsgBox "Erro Ocorrido : " & obj.Status & " - " & obj.statusText
      Exit Sub
    Else


    Set nobj = obj.responseXML.documentElement.childNodes
    vContador = nobj.length
    For vI = 0 To vContador - 1
        MsgBox nobj(vI).nodeName + " - " + nobj(vI).Text
    Next

End If
End Sub

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Cloud Computing


  • Forum Statistics

    • Total Topics
      148392
    • Total Posts
      643786
×
×
  • Create New...