Le développement sur Android



4/ CONNEXION A UN SERVEUR MYSQL


a) Les technologies utilisées

Pour mieux comprendre la procédure, voici un schéma explicatif :

1. Commande HTTPClient

2. Appel du fichier PHP

3. Renvoi des données en JSON

4. Récupération des données en JSON et décodage


  JSon(JavaScript Object Notation)
JSON est un format léger d'échange de données. Il est facile à écrire et à lire, facilement analysable.
  MySQL
 Système de gestion de base de données (SGBD).
  PHP
 Langage de scripts libre principalement utilisé pour produire des pages Web dynamiques.
  Android
 Système d'exploitation open source pour smartphones, PDA et terminaux mobiles.


b) Les différentes étapes en détails

       ○  Protocole HTTP

Le but du protocole HTTP est de permettre un transfert de fichiers grâce à une URL.
Sur les machines UNIX, on l'appelle le protocole HTTPD.

    Les méthodes de transfert du protocole HTTP :

       •  GET :

C'est la méthode la plus courante pour demander une ressource. Une requête GET est sans effet sur la ressource, il doit être possible de répéter la requête sans effet.

       •  POST :

Cette méthode est utilisée pour transmettre des données en vue d'un traitement à une ressource. L'URI fournie est l'URI d'une ressource à laquelle s'appliqueront les données envoyées.

Code HttpPost pour ce connecter au serveur :

 1 | public static final String strURL = "http://10.0.2.2/connection.php";
 2 | HttpPost httppost = new HttpPost(strURL);



       ○  PHP

PHP est utilisé pour se connecter à la base de données et transmettre les résultats en format JSON.
Le PHP utilise le protocole HTTP pour transmettre ses résultats.

Extrait du code PHP :

 1 | mysql_select_db ('baseintervention', $base) ;
 2 | $req = mysql_query("Select NOM_AGENT from agent");
 3 | print(json_encode($output));



       ○  JSON

Le rôle principal de JSON est, ici, de structurer les résultats du PHP en format String.

Lecture du résulat de la requête PHP en JSON :

 1 | Log.i("log_tag","Nom agent : "+json_data.getString("NOM_AGENT"));
 2 | returnString += "\n\t" + jArray.getJSONObject(i);