Olá pessoal,
Bom, aqui já sabemos o que é um Web Service (WS) e como criar um. Agora iremos descobrir como “consumir” um WS. Vamos utilizar o mesmo projeto.
Ao abrir o projeto vamos adicionar um novo item do tipo Web Form.
Vamos desenhar nossos forms. Colocar um DataList e formatá-lo com tabelas e labels e abaixo vamos colocar dois TextBox, um Button para utilizar o método de soma e um Label para mostrar o resultado.
Depois de tudo criado, vamos adicionar a referencia a nosso WS. Aqui, posso dizer que é a parte mais importante do "consumo".
Na Solution Explorer, temos a pasta References, onde temos as referências para o Framework ou outras bibliotecas. Clicando com o direito em cima da pasta, vamos clicar em “Add a Web Reference...”.
Ao clicar, teremos um Wizard para adicionar a referência de nosso WS.
Vamos entender melhor a tela do Wizard:
1 - Aqui podemos adicionar uma URL de um WS externo, por exemplo, lembra dos desenvolvedores de 2000 noticias? Bom eles devem mandar o link para o WSs deles e devemos adicionar a URL aqui.
2 - WS Local, podendo estar no Projeto (nosso caso no exemplo), em uma aplicação que está na máquina ou em um servidor UDDI.
3 - Colocaremos um nome para nossa referencia e clicamos em “Add Reference”.
No nosso projeto, vamos clicar em “Web services in this solution”. A seguinte tela irá aparecer:
Aqui no lugar do link locais, aparecem os métodos do WS escolhido. Para terminar, como já dito, coloque o nome da referência (o meu WsNetMorc) e adiciona-lá.
Maravilha... Temos uma referência ao nosso WS. Vamos adiciona-lá no Code Behind.
using Noticias.WsNotMorc;
No Load da Página, se não for Post Back (retorno da página) iremos chamar o método CarregarNoticias.
protected void Page_Load(object sender, EventArgs e)
{
 if (!IsPostBack)
{
CarregarNoticias();
}
}
No método CarregarNoticias, vou explicar por passos...
private void CarregarNoticias()
{
wsNotMorc = new WsNoticias();
List<Noticia> listaNoticias = new List<Noticia>();
listaNoticias = wsNotMorc.ListarNoticias();
DataTable dt = new DataTable("Noticias");
dt.Columns.Add(new DataColumn("Titulo", Type.GetType("System.String")));
dt.Columns.Add(new DataColumn("Texto", Type.GetType("System.String")));
dt.Columns.Add(new DataColumn("Autor", Type.GetType("System.String")));
dt.Columns.Add(new DataColumn("Data", Type.GetType("System.String")));
foreach (Noticia noticia in listaNoticias)
{
DataRow drow = dt.NewRow();
drow["Titulo"] = noticia.Titulo;
drow["Texto"] = noticia.Texto;
drow["Autor"] = noticia.Autor;
drow["Data"] = noticia.Data.ToShortDateString();
dt.Rows.Add(drow);
}
dlNoticia.DataSource = dt;
dlNoticia.DataBind();
}
No começo, adicionaremos uma nova referência para nosso WS. Como sabemos que irá retornar várias notícias, criaremos uma lista de noticias e falar que ela recebera o Web Method ListarNoticias().
Após vamos criar um DataTable e preencher com cada noticia recebida. E, por fim, dizemos que o DataList receberá o DataTable.
Maravilha!!! Mas vamos programar mais um pouco...
Ao clicar no botão Somar (btnSomar)...
try
{
wsNotMorc = new WsNoticias();
lblResultado.Text = "O Resultado é: " + wsNotMorc.SomaDoisValores(Convert.ToInt32(txtA.Text), Convert.ToInt32(txtB.Text)).ToString();
}
catch
{
lblResultado.Text = "Valores Inválidos";
}
...chamaremos uma nova referência ao WS e dizemos que o lblResultado será o que o WebMethod SomaDoisValores() retornar, mas agora eu passo 2 parâmetros, que são nossos 2 TextBox. Colocamos dentro de um Try...Catch para nenhum engraçadinho digitar letras!
Agora sim terminamos, F5 para rodar:
Com isso, terminamos a saga sobre WS... Futuramente irei falar sobre autenticação em WS entre outras coisas... O importante é que está tudo no Lixo!!!
Clique aqui para baixar o projeto final.
Abraços!
1 comentários:
Ae Tonto!
Dev? Só... hauhauha
Ta Dahora =D
E vc, como ta ai na "nova empreitada"?
Eu vou voltar a atualizar o blog essa semana hehe =D
Flws!
Postar um comentário
Jogue sua opinião na lixeira!