Post on 17-Apr-2015
Consumindo e Criando Web Services SOAP em .Net
Bruno C. de Paula
Consumo e Criação de Serviços SOAP
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;
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 ...
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.
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!
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.
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;
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!
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!
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");
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);
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");
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;
Passo 1
• Crie um novo projeto no Visual Studio.Net.
Passo 2
• Crie uma aplicação Windows tradicional;
Passo 3
• Coloque um componente que será destinado ao texto de busca, um botão e uma caixa referente ao resultado.
Passo 4
• Coloque nomes significativos em cada caixa;
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
Passo 6
• Coloque a url no campo indicado e pesquise os métodos disponíveis.
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á!
Passo 8 (Opcional)
• Você precisa usar a biblioteca System.Web.Services.dll;
• Adicione a referência a essa biblioteca.
Passo 9 (Opcional)
• Clique duas vezes e pressione o botão ok para adicionar essa referência.
Passo 10 – código de acesso ao Google
Passo 16
• Obtenha uma chave no site:o http://code.google.com/apis/soapsearch/reference.htmlo Não está mais disponível!
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?
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.
Criação passo a passo
• 1) Crie um novo Web Site e selecione a opção ASP.Net Web Service;
Criação passo a passo
• 2) Será criado um esqueleto semelhante a:
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:
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.
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.
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.
Links relacionados
• http://code.google.com/apis/soapsearch/reference.htmlo Serviço do Google de busca;o Indisponível atualmente!