Professional Documents
Culture Documents
Par Acesyde
Ce tutoriel a pour but de vous prsenter l'utilisation des services Web sous Android.
Accder aux services Web via Android par Acesyde
-2-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par
les droits d'auteur. Copyright 2012 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://Acesyde.developpez.com/tutoriels/android/web-services-android/
Accder aux services Web via Android par Acesyde
Les services Web sont des services de traitement de la donne expose sur internet. Ils peuvent avoir plusieurs
formes, provenir de plusieurs sites diffrents, faire des tches diverses et tre privs ou publics.
Exemples :
donnes mtorologiques ;
calcul mathmatique ;
stockage d'informations ;
etc.
Les services Web peuvent tre cods en plusieurs langages (C#, Java, PHP, Ruby, Python, C, etc.).
Nous allons nous intresser plus prcisment aux services retournant des donnes en JSON (JavaScript Object
Notation).
Pourquoi le JSON ? Eh bien pour une question de facilit, bien entendu vous pouvez utiliser le XML aussi, mais le
JSON a la particularit d'tre plus lger que XML, un gain de poids n'est pas anodin dans le domaine de la mobilit.
Vous trouverez ce lien le service Web de test que nous utiliserons par la suite :
Cette URL retourne une liste de points gographiques comportant les lments suivants :
vue (XML) ;
ListView ;
ArrayAdapter ;
client pour le service Web ;
modle de donnes.
Nous allons aussi utiliser la bibliothque GSON, qui permet de srialiser/dsrialiser en JSON, inutile de rinventer
la roue.
-3-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par
les droits d'auteur. Copyright 2012 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://Acesyde.developpez.com/tutoriels/android/web-services-android/
Accder aux services Web via Android par Acesyde
Exemple : WebService.java
Gson gson;
public WebService() {
gson = new Gson();
}
try {
// Ouverture de la connexion
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
// Connexion l'URL
urlConnection.connect();
try {
// Envoi de la requte
InputStream inputStream = sendRequest(new URL(URL));
// Vrification de l'inputStream
if(inputStream != null) {
// Lecture de l'inputStream dans un reader
InputStreamReader reader = new InputStreamReader(inputStream);
} catch (Exception e) {
Log.e("WebService", "Impossible de rapatrier les donnes :(");
}
return null;
}
}
-4-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par
les droits d'auteur. Copyright 2012 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://Acesyde.developpez.com/tutoriels/android/web-services-android/
Accder aux services Web via Android par Acesyde
sendRequest sera notre mthode gnrique pour appeler via un objet HttpUrlConnection le service Web, ici on se
contente de faire un simple appel de type GET sur une URL.
Le rsultat retourn est toujours un InputStream que nous allons pouvoir traiter, nous pouvons avoir plusieurs types
de donnes retournes par un service Web (XML, JSON, Image, Excel, etc.).
Le type InputStream est facilement manipulable avec le Reader qui va bien.
Nous avons aussi besoin d'un modle, le flux tant de type JSON il faut dsrialiser celui-ci pour le transformer en
un objet exploitable facilement.
Nous allons donc crer un fichier Point.java, lequel contiendra les informations suivantes :
les proprits ;
les accesseurs.
Vous pouvez aussi rajouter vos propres mthodes, comme toString etc.
Voici le code :
package com.aceart.formationwebservice.model;
-5-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par
les droits d'auteur. Copyright 2012 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://Acesyde.developpez.com/tutoriels/android/web-services-android/
Accder aux services Web via Android par Acesyde
Longitude = longitude;
}
}
Avec la bibliothque GSON tout se fait en une ligne pour transformer l'inputStream en Objet.
partir de l vous obtenez donc une liste d'objets provenant d'un service Web retournant du JSON.
5 - Conclusion
Vous trouverez les sources de la dmo en bas de l'article, contenant la partie affichage avec l'ArrayAdapter et la
ListView, je ne vais pas m'attarder sur ces deux points car nous les avons dj vus dans d'autres cours.
Dans un prochain tutoriel nous aborderons l'utilisation du Spring Framework qui permet d'utiliser des services Web
de type REST facilement.
6 - Annexes
Source :
7 - Remerciements
Je tiens remercier tout particulirement Feanorin qui a mis ce tutoriel au format Developpez.com.
Merci galement zoom61 et ClaudeLELOUP d'avoir pris le temps de le relire et de le corriger.
-6-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par
les droits d'auteur. Copyright 2012 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://Acesyde.developpez.com/tutoriels/android/web-services-android/
Accder aux services Web via Android par Acesyde
8 - Liens
-7-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par
les droits d'auteur. Copyright 2012 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette
page est dpose la SACD.
http://Acesyde.developpez.com/tutoriels/android/web-services-android/