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:
[WebMethod(Description = "Este método
converte de celsius para fahrenheit")]
o public double CelsiusParaFahrenheit(double C)
o ...
o
Criação de Serviço SOAP em
.Net
• 3) Demais parâmetros possíveis:
o
o
o
o
o
o
BufferResponse: “bufferiza” ou não a resposta, útil quando
o método envia muitas informações;
CacheDuration: Número de segundos que a requisição ou
resposta ficará armazenada na memória do servidor;
Description: Descrição do serviço;
EnableSession: Permite o armazenamento do estado via
Cookie;
MessageName: usado para diferenciar o nome da
mensagem SOAP do nome do método.
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.w
sdl
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.html
o 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
o
o
o
Celsius => Fahrenheit;
Fahrenheit => Celsius;
Kelvin => Celsius;
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:
Exemplo:
[WebMethod(Description = "Este método converte de celsius para
fahrenheit")]
o public double CelsiusParaFahrenheit(double C)
o
o
•
•
•
•
{
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:
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.
o
• 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/refere
nce.html
o
o
Serviço do Google de busca;
Indisponível atualmente!
Download

Serviço de Busca no Google