Consumindo um web service com JavaScript

0

Este artigo, irá apresentar uma forma simples de se consumir um webservice criado com o MS .NET e utilizá-lo com JavaScript.

Em algumas situações, pode ser necessário acessar um web service para obter dados e popular tabelas, caixas de seleção, listas de multipla escolha etc em um formulário HTML.

Para que isto seja possível, é necessário montar um pacote SOAP e enviá-lo para o servidor web, onde está hospedado os serviço que se deseja acessar.

Como montar este pacote SOAP? Em primeiro lugar, é necessário acessar a descrição do web service, como pode ser visto abaixo. Também, nele há a descrição dos dados que serão retornados.

Descrição do web service

O código abaixo irá montar o cabeçalho de um pacote HTTP bem como um envelope SOAP, e enviá-lo para o servidor. É necessário criar um elemento IFRAME com o nome zez na página HTML que irá executar esta função. Os detalhes, são descritos dentro do script.


function obtemXml()
{
var xmlHttp;
//Criando o objeto XMLHTTP para realizar as conexões
try { xmlHttp = new XMLHttpRequest(); }
catch (e) { try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) { alert("Seu navegador não suporta AJAX!"); return
false; } } }

var pacSoap = new String ;
//Montando o pacote SOAP com as informações definidas no Web-Service.
pacSoap = " ";
pacSoap += "";
pacSoap += " ";
pacSoap += "";
pacSoap += "" + document.getElementById("Text1").value + " ";
pacSoap += "
";
pacSoap += "
";
pacSoap += "
";
//Rotina a ser executada quando o estado da requisição HTTP for alterado.
xmlHttp.onreadystatechange = function()
{
if (xmlHttp.readyState == 4 )
{
zez.document.body.innerText =xmlHttp.responseText ;
}
}
alert(pacSoap);
//Montando o cabeçalho do pacote HTTP... Conforme definido pelo web-Service.
xmlHttp.open('POST',"http://larios.tecnologia.ws/arBlog/services/appTestes.asmx",true);
xmlHttp.setRequestHeader("POST", "/arBlog/services/appTestes.asmx HTTP/1.1");
xmlHttp.setRequestHeader("HOST", "larios.tecnologia.ws");
xmlHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlHttp.setRequestHeader("SOAPAction", "http://larios.tecnologia.ws/listaFuncionariosAtt");
xmlHttp.send(pacSoap);
}

O exemplo em funcionamento, pode ser testado e acessado no link : http://larios.tecnologia.ws/arBlog/services/consumoWeb.htm

Tiago Larios

0

One comment

Comments are closed.