Exercício O04 – Acessando Web Services
Este é um exercício OPCIONAL. Entretanto, um dos exercícios de sua prova do dia 02/7/2009 será baseado neste exercício.
Neste exercício você vai testar o esqueleto de código fornecido, acessando, dentro de seu programa, alguns web services.
Hoje, vamos nos preocupar em CHAMAR os Web Services e TRATAR o resultado obtido.
Referências Gerais
- Exemplo de como passar o Web Proxy dentro da PUCPR – Windows Forms
- Exemplo de como passar o Web Proxy dentro da PUCPR – Web
- Exemplos de acesso a conteúdo XML;
Referências Serviços SOAP
- Aula 26 – Web Services
- Passo a passo de criação e consumo de Web Services – Serviço de Busca no Google;
Referências Serviços REST / XML
- Google:
- Explicação sobre o serviço de notícias do Google:
- Exemplo de chamada ao serviço do Google:
- Bit.ly:
- Explicação sobre o serviço de simplificação de url Bit.Ly:
- Exemplo de chamada ao serviço:
- Wikipedia:
- Explicação sobre o serviço da Wikipedia:
- Exemplo de chamada ao serviço:
- GeoNames:
- Explicação sobre o serviço do GeoNames:
- Exemplo de chamada ao serviço:
- UOL Clipping:
- Explicação sobre o serviço do UOL Clipping:
- Exemplo de chamada ao serviço:
- Mapas do Yahoo!:
- Explicação sobre o serviço de imagens de mapa do Yahoo!
- Exemplo de chamada ao serviço:
- Exemplos de acesso a conteúdo XML – VER ABAIXO, OS FRAGMENTOS DE CÓDIGO PARA REFERÊNCIA;
- Exemplo de como ler um arquivo XML (01-LerArquivoXML.aspx):
- using System.Xml;…
- XmlReader reader = XmlReader.Create(Server.MapPath(”.”) + “/Filmoteca.xml”);
// Percorra cada nó de um arquivo XML
while (reader.Read())
{
Resultado.Text += “* Nome do Elemento:” + reader.Name +
” Valor do Elemento: ” + reader.Value +
” Tipo do Elemento: ” + reader.NodeType + “<br>”;
}
- XmlReader reader = XmlReader.Create(Server.MapPath(”.”) + “/Filmoteca.xml”);
- Exemplo de como extrair uma informação de um arquivo XML (02-ExibirTituloDeFilme.aspx):
- // Configurações de leitura do XML
XmlReaderSettings settings = new XmlReaderSettings();
// Ignora comentários
settings.IgnoreComments = true;
// Ignora espaços em branco
settings.IgnoreWhitespace = true;
// Ignora instruções de processamento
settings.IgnoreProcessingInstructions = true;
// Cria o leitor de XML
XmlReader reader = XmlReader.Create(Server.MapPath(”.”) + “/Filmoteca.xml”, settings);
// Percorra cada nó de um arquivo XML
while (reader.Read())
{
// Se for o nó nome
if ((reader.Name == “nome”) && (reader.NodeType == XmlNodeType.Element))
{
Resultado.Text += reader.ReadString() + “<br>”;
}
}
- // Configurações de leitura do XML
- Exemplo de como ler o valor de um atributos (03-ExibindoValorAtributo.aspx):
- // Configurações de leitura do XML
XmlReaderSettings settings = new XmlReaderSettings();
// Ignora comentários
settings.IgnoreComments = true;
// Ignora espaços em branco
settings.IgnoreWhitespace = true;
// Ignora instruções de processamento
settings.IgnoreProcessingInstructions = true;
// Cria o leitor de XML
XmlReader reader = XmlReader.Create(Server.MapPath(”.”) + “/Filmoteca.xml”, settings);
// Percorra cada nó de um arquivo XML
while (reader.Read())
{
// Se for o nó nome
//Resultado.Text += reader.Name + “<br>”;
if ((reader.Name == “filme”) && (reader.NodeType == XmlNodeType.Element))
{
// Se o reader tiver atributos
if (reader.HasAttributes)
{
Resultado.Text += reader["id"] + ” – “;
// Vá lendo até chegar em nome
reader.ReadToDescendant(”nome”);
Resultado.Text += reader.ReadString() + “<br>”;
// Retorna ao elemento.
// Necessário quando se trabalha com atributos
reader.MoveToElement();
}
}
}
- // Configurações de leitura do XML
Referências Serviços REST / JSON / JSONP
Enunciado
- [Serviços SOAP] Crie um programa que acesse aos serviços disponíveis nos seguintes endereços. Preferencialmente, faça uma página para cada serviço:
- a) Conversão de Temperatura:
- Sugestão de método: ConvertTemp
- http://www.webservicex.net/ConvertTemperature.asmx
- b) Consulta de CEP:
- http://www.equipea.com.br/consultacep/consultacep.asmx?op=RetornaValores
- Sugestão de método: RetornaValores
- c) Busca de letras de música:
- http://lyricwiki.org/server.php#
- Sugestões de métodos: getSongResult, searchArtists, etc.
- d) Geração de anagramas:
- e) Definição de termos:
- http://services.aonaware.com/DictService/DictService.asmx
- Sugestão de método: define
- f) Serviço SOAP à sua escolha! Sugestões de busca no Google: SOAP API, SOAP filetype:asmx, SOAP NuSOAP, etc.
- [Serviço REST - retorno em XML] Crie uma interface de acesso ao serviço de notícias do Google (ver http://www.google.com/support/news/bin/answer.py?answer=59255&hl=pt). Esta interface deve possuir uma caixa de texto na qual o usuário seleciona qual é a palavra-chave a ser procurada e um botão que realiza a busca. Exemplo de chamada ao serviço do Google: http://news.google.com/news?ned=pt-PT_pt&q=Lula&output=rss . Dessa vez, você deverá exibir como resposta apenas o título do link e o próprio link.
- [Serviço REST - retorno em XML] Crie uma interface de acesso ao serviço de consultas à Wikipedia (ver http://en.wikipedia.org/w/api.php). Chame o método “list=search” responsável por, dada uma palavra-chave, realizar uma busca na Wikipedia por termos semelhantes. Esta interface deve possuir uma caixa de texto na qual o usuário seleciona qual é o termo a ser buscado, e um botão que chama o serviço. Exemplo de chamada ao serviço da Wikipedia: http://pt.wikipedia.org/w/api.php?action=query&list=search&srsearch=Java&format=xml. Dessa vez, exiba apenas o título dos termos relacionados (atributo title da tag p).
- [Serviço REST - retorno em XML] Crie uma interface de acesso ao serviço de informações geográficas GeoNames (ver http://www.geonames.org/export/web-services.html e http://www.geonames.org/export/web-services.html#timezone). Chame o método “timezone”, o qual dada uma coordenada geográfica, retorna qual é a zona horária associada à coordenada. Esta interface deve possuir duas caixas de texto nas quais o usuário indica qual é a latitude e a longitude e um botão que chama o serviço. Exemplo de chamada ao serviço: http://ws.geonames.org/timezone?lat=-25&lng=-49&style=full. Dessa vez, exiba o nome do país e a hora atual.
- [Serviço REST - retorno em XML] Crie uma interface de acesso ao serviço de clipping de notícias do UOL (ver http://clipping.busca.uol.com.br/monte.jhtm). Este serviço permite a busca de notícias a partir de um conjunto de palavras-chave. Sua interface deve possuir, por exemplo, uma caixa de texto com as palavras que devem ser incluídas. Também deve ter um botão de chamada ao serviço. Exemplo de chamada ao serviço: http://rss.noticias.busca.uol.com.br/pucpr-vestibular. Dessa vez, você deverá exibir como resposta apenas o título do link, o próprio link e a descrição.
- [Serviço REST - retorno em XML] Crie uma interface de acesso ao serviço de imagens de mapa do Yahoo! (ver http://developer.yahoo.com/maps/rest/V1/). Este serviço permite o retorno da URL de uma imagem da posição no mapa de uma cidade, endereço, país, etc. Sua interface deve possuir, por exemplo, uma caixa de texto indicando a cidade que está sendo buscada. Também deve ter um botão de chamada ao serviço. Exemplo de chamada ao serviço: http://local.yahooapis.com/MapsService/V1/mapImage?appid=YD-4g6HBf0_JX0yq2IsdnV1Ne9JTpKxQ3Miew–&city=Curitiba. Dessa vez, você deverá exibir como resposta a imagem obtida. Se preferir usar o serviço de mapas do Google, use o serviço disponível em: http://code.google.com/apis/maps/documentation/staticmaps/
- [Serviços JSON/JSONP] Crie um programa Web que acesse um dos serviços disponíveis na lista a seguir: Sorteio de número aleatório - http://json-random.appjet.net/, Extração de informações sobrei imagens – http://img2json.appspot.com/, Horário – http://json-time.appspot.com/, Informações do cabeçalho HTTP – http://json-head.appspot.com/, Busca no Twitter – http://apiwiki.twitter.com/ Twitter-API-Documentation, Informações sobre url – http://bit.ly/docs, Banco de dados simplificado – http://tinydb.org/, Yahoo Answers – http://developer.yahoo.com/answers/V1/questionSearch.html , Geonames – http://www.geonames.org/export/JSON-webservices.html, Google Planilha – http://code.google.com/apis/gdata/samples/spreadsheet_sample.html, Google Agenda – http://code.google.com/apis/gdata/samples/cal_sample.html, Yahoo! Artist Search – http://developer.yahoo.com/search/audio/V1/artistSearch.html
Comentários