Olá Developers.
Atualmente todo mundo procura utilizar webservices, é uma tecnologia fantástico, mas por maior que sejam os esforços das comunidades, ainda existe uma grande dificuldade de como acessar webservices com tecnologia obsoletas como ASP Classico, VB6 e outras tantas que podem até estar na crista da onda ainda, mas no fundo não oferencem o suporte adequado à webservices como Delphi.
Após inúmeros pedidos de clientes que tentam realizar integrações de webservices e sofrem por não ter uma solução prática para implementar o mesmo, resolvi fazer um exemplo e não é HelloWorld()!
Basicamente nosso exemplo é feito em ASP Clássico com uma CLASS de apoio para se livrar de uso externo de componentes como Microsoft SOAP Client, que nem sempre está disponível em um Shared Host.
Criar um arquivo cls_webservices.asp
<code>
<%
'***********************************************************************************
'
' Classe para acessar WebServices
' Author: Angelo Bestetti
' http://www.i-stream.com.br
' Purpose: Acessar webservices www.consultacpf.com
' Date: 2007/10/18
'***********************************************************************************
Option Explicit
'****************************************************
' Classe para WebService
'****************************************************
Class WebService
Public Url
Public Method
Public Response
Public Parameters
' Funcao para Invokar o WebService
Public Function Invoke()
Dim xmlhttp
Set xmlhttp = Server.CreateObject("MSXML2.XMLHTTP")
xmlhttp.open "POST", Url & "/" & Method, false
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.Send Parameters.toString
response = xmlhttp.responseText
set xmlhttp = nothing
End Function
Private Sub Class_Initialize()
Set Parameters = New wsParameters
End Sub
Private Sub Class_Terminate()
Set Parameters = Nothing
End Sub
End class
'****************************************************
' Classe para wsParameters
'****************************************************
Class wsParameters
Public mCol
Public Function toString()
Dim nItem
Dim buffer
buffer = ""
For nItem = 1 to Count
buffer = buffer & Item(nItem).toString & "&"
Next
If right(buffer,1)="&" then
buffer = left(buffer,len(buffer)-1)
End if
toString = buffer
End Function
Public Sub Clear
set mcol = nothing
Set mCol = Server.CreateObject("Scripting.Dictionary")
End Sub
Public Sub Add(pKey,pValue)
Dim NewParameter
Set NewParameter = New wsParameter
NewParameter.Key = pKey
NewParameter.Value = pValue
mCol.Add mCol.count+1, NewParameter
Set NewParameter = Nothing
End Sub
Public Function Item(nKey)
Set Item=mCol.Item(nKey)
End Function
Public Function ExistsXKey(pKey)
Dim nItem
For nItem = 1 to mcol.count
If mCol.Item(nItem).key = pKey Then
ExistsXKeyword = True
Exit For
End if
Next
End Function
Public Sub Remove(nKey)
mCol.Remove(nKey)
End sub
Public Function Count()
Count=mCol.count
End Function
Private Sub Class_Initialize()
Set mCol = Server.CreateObject("Scripting.Dictionary")
End Sub
Private Sub Class_Terminate()
Set mCol = Nothing
End Sub
End class
'****************************************************
' Classe para wsParameter
'****************************************************
Class wsParameter
Public Key
Public Value
Public Function toString()
toString = Key & "=" & Value
End Function
End Class
%>
</code>
Criar um arquivo onde voce vai fazer sua consulta, o exemplo abaixo realiza uma consulta de exemplo no www.consultacpf.com
<code>
<!--#include file="cls_webservice.asp"-->
<%
dim ws
set ws = new webservice
ws.url = "http://www.consultacpf.com/webservices/consultacpf.asmx"
' Podendo ser: ConsultaSaldoCliente, ConsultaSinteseCadastralSERASA, ConsultaSimplesSERASASandBox, ConsultaSimplesSERASA, ConsultaDetalhadaSERASA
' Maiores Informações: http://www.consultacpf.com/webservices/consultacpf.asmx
ws.method = "ConsultaDetalhadaSERASA"
ws.parameters.Add "Email","seuemailaqui"
ws.parameters.Add "Senha","suasenhaaqui"
ws.parameters.Add "Documento","cpf/cnpj a ser consultado"
ws.Invoke
response.Write ws.response
set ws = nothing
%>
</code>
Este exemplo mostra como é facil chamar um webservice e receber um XML de retorno. Claro que você pode adaptar este código para fazer consultas em outro webservice qualquer. Esta é a ideia.
Este exemplo está disponivel para download no endereço abaixo:
http://dn.consultacpf.com/files/folders/asp_30_classico/default.aspx
That´s all folks



