Ir para conteúdo
Fórum Script Brasil
  • 0

WebService em VB6


InfoCidreira

Pergunta

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

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...