Android Interroger un Web Service Json



Documents pareils
21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations

Architecture Orientée Service, JSON et API REST

Jean-Philippe Paquette

Paris Airports - Web API Airports Path finding

Devenez un véritable développeur web en 3 mois!

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

Android UIThread, Thread, Handler et AsyncTask

Android 4 Les fondamentaux du développement d'applications Java

TP2 : Client d une BDD SqlServer

Introduction à ElasticSearch

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Bases Java - Eclipse / Netbeans

4. SERVICES WEB REST 46

Développement d'un logiciel VoIP BlackBerry

Outils, langage et approche Android Une introduction. Nicolas Stouls lyon.fr

PHP 5. La base de données MySql. A. Belaïd 1

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Une introduction à la technologie EJB (2/3)

les techniques d'extraction, les formulaires et intégration dans un site WEB

PHP. PHP et bases de données

Les fondamentaux du développement d applications Java

Mise en œuvre des serveurs d application

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

CREATION WEB DYNAMIQUE

Cloud public d Ikoula Documentation de prise en main 2.0

MailStore Server 7 Caractéristiques techniques

LAMP : une nouvelle infrastructure LAMP. Une architecture modulaire. Installation

Messagerie asynchrone et Services Web

Java DataBaseConnectivity

DUBREUIL Raphaël VERNET Antoine RAPPORT PROJET DE FIN D'ETUDES BORNE INTELLIGENTE HETEROGENE

Cours 1: Java et les objets

Introduction aux. services web 2 / 2

Présentation Alfresco

PHP et le Cloud. All rights reserved. Zend Technologies, Inc.

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Référentiel ISVD Prévisionnel

Kiwi-Trip Application de tourisme pour Android

Pratique et administration des systèmes

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Architectures web/bases de données

Application web de gestion de comptes en banques

Programmation Web. Introduction

MailStore Server. La référence en matière d archivage d s

A5.2.4 Étude d une technologie, d'un composant, d'un outil

Alfstore workflow framework Spécification technique

API Web Service TéléAlerte

Un outil de planning ET de ticketing? Ne cherchez plus, vous l avez trouvé!

Le Web de Données Dan VODISLAV Université de Cergy-Pontoise Master Informatique M2 Plan

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

OpenPaaS Le réseau social d'entreprise

Module http MMS AllMySMS.com Manuel d intégration

API ONE-TIME PASSWORD

Android et le Cloud Computing

Information utiles. webpage : Google+ : digiusto/

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Datalift. + + Architecture Modularité Déploiements. d j = 09/04/2015 Laurent BIHANIC


Hébergement de sites Web

IRL : Simulation distribuée pour les systèmes embarqués

Hébergement de site web Damien Nouvel

Projet de programmation (IK3) : TP n 1 Correction

LEA.C5. Développement de sites Web transactionnels

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Petite définition : Présentation :

Android Publish/Subscribe, GCM, Google Cloud Messaging : une introduction

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Console IAP Manuel d utilisation

Exécutif temps réel Pierre-Yves Duval (cppm)

Formation : WEbMaster

API SMS CONSEIL HTTP V2.01. Sommaire. Documentation V1.0 au 21/05/2011

ALOHA LOAD BALANCER METHODE DE CONTROLE DE VITALITE

TP, première séquence d exercices.

Module BD et sites WEB

Serveurs de noms Protocoles HTTP et FTP

3 Octobre Les Communautés MS

Mysql. Les requêtes préparées Prepared statements

PDO : PHP Data Object 1/13

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Cours: Administration d'une Base de Données

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Plus de 250 Millions de SMS par an SMSENVOI.COM

Approche Contract First

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Premiers Pas en Programmation Objet : les Classes et les Objets

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Plateforme Applicative Zend PHP Cloud

Nos stages s'adressent à tous ceux qui ont besoin d'acquérir des bases, une mise à niveau ou un perfectionnement dans les thèmes suivants :

Introduction aux Bases de Données Relationnelles Conclusion - 1

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

Transcription:

Android Interroger un Web Service Json Contenu 1) Contexte... 2 A. La base MYSQL... 2 B. La ressource PHP (web service)... 2 C. La classe métier associée... 2 2) Interroger le web service... 3 A. Fonctionnement depuis l application Android... 3 B. Les AsyncTask... 3 doinbackground... 3 onpostexecute... 3 C. Requête http... 3 Exemple Get... 3 Exemple Post... 5 D. Les sessions... 5 3) Communication entre les 2 Thread... 5 4) Transformation Des trucs... 5 5) Résultats... 6

1) Contexte Nous allons voir ici comment récupérer des données contenues dans une base de données intranet par le biais d un service web accessible d Internet. Les informations transiteront sous forme d objets JSON, facilement manipulable par le langage Php et les terminaux mobiles Android. A. La base MYSQL La base de données interne contient une table «truc». Cette table est constituée de 2 champs : idtruc : un identifiant clé primaire de la table (int) libtruc : un libellé quelconque (varchar(45)) B. La ressource PHP (web service) Elle est à l adresse suivante : http://10380.sio.jbdelasalle.com/~amedassi/testws/index.php Elle crée une instance d un objet PDO afin d interroger la base Mysql si besoin. Selon la valeur de la variable (en GET) «uc», elle va interroger la bd et retourner le résultat encode en JSON. http://10380.sio.jbdelasalle.com/~amedassi/testws/index.php?uc=gettrucs Renvoie : C est l encodage JSON du contenu de la table «truc» : (Select * from truc) C. La classe métier associée Du côté de notre client Android, il semble plus pratique de créer l équivalent de notre table truc. Soit la classe Truc : Cette classe contient un constructeur standard, les getters, est une surcharge de tostring nécessaire à l affichage dans un listview par exemple. Elle contient également une méthode trucfactory statique, qui prend en paramètre un objet JSONObject et retourne un Truc. Elle peut également contenir une méthode trucsfactory statique qui prend en paramètre un objet JSONArray et retourne un ArrayList<Truc>.

2) Interroger le web service A. Fonctionnement depuis l application Android Une requête http met un certain temps à s exécuter. L application de doit pas être «bloquée» le temps que la requête ne récupère le résultat demandé. Pour cela, la requête http doit s exécuter dans un Thread différent du Thread principal de l application. La classe qui va gérer l exécution de la requête http doit donc implémenter l interface AsyncTask, afin d être exécutée en parallèle. B. Les AsyncTask Comme son nom l indique, une AsyncTask permet de réaliser des tâches de manière asynchrone, à la manière de la classe Thread. L avantage de l AsyncTask est sa simplicité d utilisation et d implémentation. Le Thread secondaire est créé automatiquement et la communication entre les différents Thread est simplifiée. doinbackground La méthode doinbackground de l interface AsyncTask est appelée à l appel de execute sur l objet AsyncTask. Elle contient le code à exécuter dans un autre Thread. onpostexecute La méthode onpostexecute de l interface AsyncTask est appelée après la fin de l execution du Thread parallèle. Elle doit contenir le code à exécuter quand la tâche asynchrone est terminée. Dans notre cas, elle sera exécutée une fois la réponse http récupérée. C. Requête http Depuis peu, un nouveau client http (non intégré à l API Android) est conseillé, laissant obsolète le client http de l API Java. Il s agit d okhttp de square open source. Afin de pouvoir l utiliser, il suffit d intégrer la librairie à Android Studio. Exemple Get

Exemple Post D. Les sessions Dans le cas où une identification protège le web service, il sera très certainement nécessaire de garder une session web ouverte sur le serveur http. Pour cela, en plus de n utiliser qu une seule instance de notre objet web, il faut également spécifier au clienthttp de conserver le manger de cookies : 3) Communication entre les 2 Thread Comment notre AsyncTask va-t-elle prévenir le programme principal que la requête est terminée? Pour que l AsyncTask puisse appeler une méthode de l Activity, il faut que l AsyncTask connaisse la référence de l Activity. Une autre solution serait de créer un Handler connu des 2 classes. C est exactement le travail d un objet Handler. A la construction de l objet Threadé, on lui passe la référence de l objet appelant afin que l objet Threadé puisse prévenir l Objet du Thread principal quand le travail sera terminé. L AsyncTask doit exécuter la requête (ici GET). Elle récupère le résultat de la requête dans un String qui contient la chaîne de caractère attendue. Une fois cette chaîne récupérée, elle peut interpréter son contenu (un/des objets JSON) et prévenir le Thread principal par le biais de l Handler ou bien d une méthode de l Activity que le travail est fini et qu elle peut venir récupérer le résultat quand elle le souhaite. 4) Transformation Des trucs La réponse de la requête peut-être maintenant traitée. Le constructeur de JSONArray va nous permettre de transformer la chaîne de caractères (réponse de la requête) en tableau de JSONObjet. Puis, grâce à la méthode statique trucfactory de la classe Truc, nous allons pouvoir générer nos objets Truc afin de les stocker dans un ArrayList. L ArrayList n a plus qu à être chargé dans un ListView par exemple.

5) Résultats