:: Enseignements :: Licence :: L3 :: 2010-2011 :: Programmation Objet avec Java ::
[LOGO]

9. HTTP et analyseur syntaxique XML



Le compte-rendu de ce TP est à rendre pour le lundi 20 décembre 2010.

Exercice 1 - HTTP

Le but de cet exercice est d'obtenir une réponse suite à une requête HTTP.

  1. Utiliser la classe URL pour créer une URL sur la page web suivante: http://twitter.com/users/show.xml?user_id=1401881.
  2. Ouvrir une connexion et récupérer le flux de sortie (le contenu) de la page Web. Vous afficherez le contenu ligne à ligne.
  3. A quoi sert la méthode close d'un scanner ? Pourquoi cette méthode est-elle importante ?
  4. Modifier votre code pour que la connexion soit fermée quoi qu'il arrive.

Exercice 2 - Parseur XML

Le but de cet exercice est d'extraire des informations d'une réponse suite à une requête HTTP. Il existe 3 spécifications permettant l'analyse syntxique XML : SAX, DOM et StaX. Nous utiliserons ici la spécification SAX.

  1. Que représente la classe java.xml.parsers.SAXParserFactory ? Comment créer un objet de ce type ?
  2. A quoi sert la méthode setNamespaceAware() ?
  3. Comment fait-on pour créer un analyseur SAX à partir d'un objet de type SAXParserFactory ?
    Comment doit-on gérer les exceptions ?
  4. A quoi sert la classe org.xml.sax.helpers.DefaultHandler ?
    A quoi servent les méthodes startElement() et endElement() de l'interface org.xml.sax.ContentHandler ?
  5. Ecrire une classe qui hérite de DefaultHandler et redéfinit les méthodes startElement() et endElement() pour afficher les informations obtenues.
  6. Analyser le contenu de la page web http://twitter.com/users/show.xml?user_id=1401881 à l'aide du DefaultHandler de la question précédente.
  7. Modifier votre DefaultHandler pour créer un objet User contenant uniquement le contenu des balises name, location et protected (typé correctement) et l'utiliser avec l'utilisateur 1401881 ou d'autres utilisateurs.
    Note: voici la description des balises possibles http://apiwiki.twitter.com/Return-Values.