consumindo e criando web services soap em.net bruno c. de paula consumo e criação de serviços...
TRANSCRIPT
![Page 1: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/1.jpg)
Consumindo e Criando Web Services SOAP em .Net
Bruno C. de Paula
Consumo e Criação de Serviços SOAP
![Page 2: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/2.jpg)
Tema de Estudo
• Vamos fazer um programa que acesse um web service;
• Vamos Compreender a criação de web services do tipo SOAP dentro do .Net;
![Page 3: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/3.jpg)
Criação de Serviço SOAP em .Net
• 1) Menu File > New Web Site > ASP.NET Web Service;
• 2) Marque os métodos que serão do serviço com: o [WebMethod(Description = "Este método
converte de celsius para fahrenheit")]o public double CelsiusParaFahrenheit(double C)o ...
![Page 4: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/4.jpg)
Criação de Serviço SOAP em .Net
• 3) Demais parâmetros possíveis:o BufferResponse: “bufferiza” ou não a resposta, útil quando
o método envia muitas informações;o CacheDuration: Número de segundos que a requisição ou
resposta ficará armazenada na memória do servidor;o Description: Descrição do serviço;o EnableSession: Permite o armazenamento do estado via
Cookie;o MessageName: usado para diferenciar o nome da
mensagem SOAP do nome do método.o TransactionOption: Implementação de transações.
![Page 5: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/5.jpg)
Consumo de Serviço SOAP em .Net
• 1) Em um projeto já existente, selecione o projeto e selecione o menu Add Web Reference;
• 2) Cole o endereço do arquivo WSDL; Na PUCPR, muitas vezes você precisará salvar o arquivo WSDL
antes!
• 3) Será gerada uma classe de acesso ao serviço;• 4) Importante: não esqueça de configurar o web proxy!
![Page 6: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/6.jpg)
Exercício de Fixação
• Faça um programa que faça uma busca no Google e retorne a popularidade de um termo;
• Define-se a popularidade como o número de vezes que o termo aparece na base do Google;
• A documentação para este serviço está disponível em:o http://code.google.com/apis/soapsearch/reference.html
• Neste Guia, estamos fazendo o código para Windows Forms;
• Se possível, crie seu código para ASP.NET.
![Page 7: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/7.jpg)
Configuração do WebProxy
• Primeiramente, para poder utilizar os exemplos dentro da PUCPR você deve utilizar um WebProxy;
• // Colocar no início do código• using System.Net;• ...• // Antes de chamar o serviço (pode ser no construtor da classe do Form)• // Lembre-se: proxy, login, senha e domínio são caixas de texto que você deve
preencher com os valores referentes aos do proxy da PUC e ao seu login e senha.
• System.Net.WebProxy proxyObject = new System.Net.WebProxy(proxy.Text);• proxyObject.Credentials = new System.Net.NetworkCredential(login.Text,
senha.Text, dominio.Text);• WebRequest.DefaultWebProxy = proxyObject;
![Page 8: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/8.jpg)
Configuração do WebProxy
• Nunca esqueça desse passo para que seu serviço funcione!
• Use o esqueleto de código fornecido!
•É o erro que vocês mais cometem!
![Page 9: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/9.jpg)
Outras maneiras de configurar o webproxy (1/4)
• A linha abaixo obtém o webproxy padrão do Internet Explorer:
• System.Net.GlobalProxySelection.Select = System.Net.WebProxy.GetDefaultProxy();
• System.Net.GlobalProxySelection.Select.Credentials = new System.Net.NetworkCredential(“meu login", “minha senha", "meu domínio");
• Cuidado! Não deixe sua senha na PUC no código-fonte!
![Page 10: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/10.jpg)
Outras maneiras de configurar o webproxy (2/4)
• WebRequest.DefaultWebProxy = null;• System.Net.GlobalProxySelection.Select = new
System.Net.WebProxy("proxy01.pucpr.br", 3129);• System.Net.GlobalProxySelection.Select.Credentia
ls = new System.Net.NetworkCredential(login.Text, senha.Text, "");
• WebRequest.DefaultWebProxy.Credentials = new NetworkCredential (“meu login", “minha senha", "meu domínio");
![Page 11: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/11.jpg)
Outras maneiras de configurar o webproxy (3/4)
• System.Net.Uri proxyURI = new System.Net.Uri("http://64.202.165.130:3128");
• System.Net.GlobalProxySelection.Select = new
System.Net.WebProxy(proxyURI);
![Page 12: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/12.jpg)
Outras maneiras de configurar o webproxy (4/4)
• System.Net.WebProxy proxy = new System.Net.WebProxy ("proxy02.pucpr.br:3125" ); proxy.Credentials = new System.Net.NetworkCredential("SEU LOGIN", "SUA SENHA", "cwbdis");
![Page 13: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/13.jpg)
Endereço do Web Proxy?
• Para obter o proxy da PUC, acesse o arquivo:o http://www.pucpr.br/proxy.pac
• Outra maneira de obter o endereço do webproxy é verificar nas opções da Internet no Internet Explorer;
![Page 14: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/14.jpg)
Passo 1
• Crie um novo projeto no Visual Studio.Net.
![Page 15: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/15.jpg)
Passo 2
• Crie uma aplicação Windows tradicional;
![Page 16: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/16.jpg)
Passo 3
• Coloque um componente que será destinado ao texto de busca, um botão e uma caixa referente ao resultado.
![Page 17: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/17.jpg)
Passo 4
• Coloque nomes significativos em cada caixa;
![Page 18: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/18.jpg)
Passo 5
• Agora, vamos fazer uma referência ao arquivo wsdl do Google, que contém a descrição de quais métodos existem no Web Service.
• O arquivo está disponível em:o http://api.google.com/
GoogleSearch.wsdl
![Page 19: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/19.jpg)
Passo 6
• Coloque a url no campo indicado e pesquise os métodos disponíveis.
![Page 20: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/20.jpg)
Passo 7 – IMPORTANTE!!!
• A situação ao lado acontece quando você está debaixo de um servidor dfe webproxy (como a PUCPR).
• Nesse caso, SALVE o arquivo wsdl em disco e carregue a partir de lá!
![Page 21: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/21.jpg)
Passo 8 (Opcional)
• Você precisa usar a biblioteca System.Web.Services.dll;
• Adicione a referência a essa biblioteca.
![Page 22: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/22.jpg)
Passo 9 (Opcional)
• Clique duas vezes e pressione o botão ok para adicionar essa referência.
![Page 23: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/23.jpg)
Passo 10 – código de acesso ao Google
![Page 24: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/24.jpg)
Passo 16
• Obtenha uma chave no site:o http://code.google.com/apis/soapsearch/reference.htmlo Não está mais disponível!
![Page 25: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/25.jpg)
Passo 17
• Fim! Agora é só executar sua aplicação.• Dentro da sua aplicação, você consegue usar
a busca do Google!• Qual pode ser a utilidade disso?
![Page 26: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/26.jpg)
Exercício de Fixação
• Vamos criar em .Net um serviço simples que faz conversões de medidas de temperatura:o Celsius => Fahrenheit;o Fahrenheit => Celsius;o Kelvin => Celsius;o Celsius => Kelvin.
![Page 27: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/27.jpg)
Criação passo a passo
• 1) Crie um novo Web Site e selecione a opção ASP.Net Web Service;
![Page 28: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/28.jpg)
Criação passo a passo
• 2) Será criado um esqueleto semelhante a:
![Page 29: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/29.jpg)
Criação passo a passo
• 3) Neste esqueleto, cada método do web service é representado através de um atributo [WebMethod] anotando cada método:
![Page 30: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/30.jpg)
Criação passo a passo
• 4) Para testar o serviço você deve executar o arquivo com extensão asmx;
• 5) Observe que o wsdl está no link Service Description.
![Page 31: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/31.jpg)
Criação passo a passo
• 6) Além de criar o método, você também deve se preocupar com os parâmetros nomeados do atributo:o Exemplo:o [WebMethod(Description = "Este método converte de celsius para
fahrenheit")]o public double CelsiusParaFahrenheit(double C)
• {• return ...;• }• No exemplo acima o atributo Description indica uma descrição
do serviço.
![Page 32: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/32.jpg)
Criação passo a passo
• 7) Parâmetros nomeados possíveis:o BufferResponse: “bufferiza” ou não a resposta, útil quando o
método envia muitas informações;o CacheDuration: Número de segundos que a requisição ou
resposta ficará armazenada na memória do servidor;o Description: Descrição do serviço;o EnableSession: Permite o armazenamento do estado via Cookie;o MessageName: usado para diferenciar o nome da mensagem
SOAP do nome do método.o TransactionOption: Implementação de transações.
• Em nosso exercício vamos usar só o Description;• Complete o exercício com o código dos métodos.
![Page 33: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc0fe497959413d8bba97/html5/thumbnails/33.jpg)
Links relacionados
• http://code.google.com/apis/soapsearch/reference.htmlo Serviço do Google de busca;o Indisponível atualmente!