Como consumir um WebService com ASP


Antes de começar a folia do carnaval.. vamos aprender a como consumir um webservice com Active Server Pages, utilizando vbscript. Isso é um material escassso na net, tive que garimpar consumos em java, php, e mais umas pesquisas de xmldom para conseguir consumir definitivamente um Webservice com ASP.

 Eu costumo deixar a chamada do webservice em um asp separado, depois utilizar um #include. Crie um arquivo chamado WSconsumo.asp, cole o código:

  strUrlWS = “http://www.meusite/meuws/service.asmx?wsdl
 Set objSoap = Server.CreateObject(“MSSOAP.SoapClient30″)
 objSoap.ClientProperty(“ServerHTTPRequest”) = True
 objSoap.mssoapinit strUrlWS, “Service”
 

 Consideremos que o WebService tenha um método com o nome de RetornaDados. Com o webservice, você tem opção de 2 tipos de retorno de dados, de acordo com meu conhecimento até o momento: em String ou  em XML.

No caso de String, vc pode setar o resultado em uma variável:

Retorno = objSoap.RetornaDados(pCpf,pNasc,pPeriodo)

No exemplo acima, a variável “Retorno” será uma string com o valor retornado.
Caso o retorno seja um DataSet no formato xml, você pode recebê-lo assim:

set Retorno = objSoap.RetornaDados(pCpf,pNasc,pPeriodo)

Dessa maneira, “Retorno” passa a ser um Objeto com conteúdo xml.
Daí você precisa ter um certo conhecimento em estrutura de xml para conseguir tratar o retorno, mas aí vai um exemplo:

Nome = Retorno.item(0).childNodes.item(1).text

Lembrando que o caso acima é para acessar o nó raiz, e abaixo desse, o segundo nó (lembrando que o index 1 significa o 2º registro, pois a contagem é a partir do 0). Você tem que adaptar de acordo com a estrutura do seu retorno, alguns métodos do acesso em xml que você pode utilizar:

item(…).nodeName
item(…).childNodes.length

 Até mais.

, , ,

  1. #1 por Filipe em Setembro 16th, 2008

    Valeu ai cara,

    seu artigo me serviu de muita ajuda…

    abração

(não será publicado)
  1. Nenhum trackback.