Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
236 L’art du développement Android
REST et relaxation
Bien qu’Android ne dispose pas d’API cliente pour SOAP ou XML-RPC, il intègre la
bibliothèque HttpComponents d’Apache. Vous pouvez donc soit ajouter une couche
SOAP/XML-RPC au-dessus de cette bibliothèque, soit l’utiliser directement pour accéder aux
services web de type REST. Dans ce livre, nous considérerons les "services web REST"
comme de simples requêtes HTTP classiques avec des réponses aux formats XML, JSON,
etc.
Vous trouverez des didacticiels plus complets, des FAQ et des HOWTO sur le site web de
HttpComponents 1 : nous ne présenterons ici que les bases en montrant comment consulter
les informations météorologiques.
Opérations HTTP via HttpComponents
Le composant HttpClient de HttpComponents gère pour vous toutes les requêtes HTTP.
La première étape pour l’utiliser consiste évidemment à créer un objet. HttpClient étant
une interface, vous devrez donc instancier une implémentation de celle-ci, comme
DefaultHttpClient.
Ces requêtes sont enveloppées dans des instances de HttpRequest, chaque commande
HTTP étant gérée par une implémentation différente de cette interface (HttpGet pour les
requêtes GET, par exemple). On crée donc une instance d’une implémentation de HttpRequest, on construit l’URL à récupérer ainsi que les autres données de configuration (les
valeurs des formulaires si l’on effectue une commande POST via HttpPost, par exemple) puis
l’on passe la méthode au client pour qu’il effectue la requête HTTP en appelant execute().
Ce qui se passe ensuite peut être très simple ou très compliqué. On peut obtenir un objet
HttpResponse enveloppant un code de réponse (200 pour OK, par exemple), des en-têtes
HTTP, etc. Mais on peut également utiliser une variante d’execute() qui prend en paramètre un objet ResponseHandler : cet appel renverra simplement une représentation String de la réponse. En pratique, cette approche est déconseillée car il est
préférable de vérifier les codes de réponses HTTP pour détecter les erreurs. Cependant,
pour les applications triviales comme les exemples de ce livre, la technique ResponseHandler convient parfaitement.
Le projet Internet/Weather, par exemple, implémente une activité qui récupère les
données météorologiques de votre emplacement actuel à partir du site Google Weather.
Ces données sont converties en HTML puis passées à un widget WebKit qui se charge de
les afficher. Nous laissons en exercice au lecteur la réécriture de ce programme pour qu’il
utilise un ListView. En outre, cet exemple étant relativement long, nous ne présenterons
1. http://hc.apache.org/.
Livre Android.book Page 236 Dimanche, 8. novembre 2009 12:23 12
Précédent

- 251/391

Suivant