Exercício O04 – Acessando Web Services

18 junho, 2009 (19:05) | exercícios | Por: admin

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

Referências Serviços SOAP

Referências Serviços REST / XML

  • 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>”;
      }
  • 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>”;
      }
      }
  • 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();
      }
      }
      }

Referências Serviços REST / JSON / JSONP

Enunciado

  1. [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:
  2. [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.
  3. [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).
  4. [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.
  5. [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.
  6. [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/
  7. [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

Escreva um comentário