Jump to content
Fórum Script Brasil
  • 0

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
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.

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

Valeu e até mais.

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.

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!

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 ?

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
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

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.



  • Forum Statistics

    • Total Topics
      148865
    • Total Posts
      644861
×
×
  • Create New...