webservice squirrel

Xamarin.Android + Web services :  

Convertisseur de monnaie en 5 minutes

 

Le plupart des applications qui affichent des données effectuent des communications avec les serveurs Web distants afin d’extraire ces informations.

Cet article détaille les opérations de communication via les Web Services REST à travers des exemples d’applications. Le code complet de l’application peut être trouvé en fichier joint :  https://github.com/zayenCh/Xamarin.Android_REST_JSON

 

Avant de commencer :

 

L’installation de la bibliothèque Newtonsoft.Json via le gestionnaire des bibliothèques externes Nuget est recommandée afin de pouvoir appeler le Web Service et le formater la réponse obtenue.

Newtonsoft.Json est une bibliothèque avancée utilisée pour faciliter la gestion des communications avec les flux sous le format JSON.

Cependant, on peut toujours utiliser le type DataContractJsonSerializer ou une autre bibliothèque pour extraire et gérer les données en provenance du Web Service JSON.

 

Afin d’extraire les données depuis Internet ou un réseau local, on va utiliser une requête Http pour appeler le Web Service : http://api.fixer.io/latest

 

1 . Tester le Web Service via votre navigateur :

{"base":"EUR","date":"2017-02-09" , "rates":{"AUD":1.3965,"BGN":1.9558,"BRL":3.3329,"CAD":1.4016…}

Figure A : Aperçu des données depuis le navigateur

image

 

2. Afin de communiquer avec Internet, la permission Internet est requise en premier lieu

[assembly: UsesPermission(Manifest.Permission.Internet)]

 

3. L’accès aux données depuis une source externe nécessite l’appel de l’objet HttpClient et la méthode GetStringAsync()

HttpClient client = new HttpClient(); var response = await client.GetAsync(uri); if (response.IsSuccessStatusCode) { var content = await response.Content.ReadAsStringAsync(); … }

 

4. La variable content à ce niveau contient la réponse sous forme de chaine de caractères comme vous l’avez vu dans le navigateur.

 

5. Pour extraire les données depuis la chaine des caractères obtenue et la rendre sous forme d’un objet, on doit définir une classe qui va être un modèle de données :

public class Currency { public string base { get; set; } public string date { get; set; } public Rates rates { get; set; } }

 

6. Ensuite on doit convertir la chaine de caractères obtenue dans l’objet content suivant la classe modèle Currency :

public Currency Item { get; set; }

Item = JsonConvert.DeserializeObject<Currency>(content);

 

On obtient à la fin un objet Item de type Currency contenant les données obtenues depuis le Web Service JSON. Il faut juste les visualiser dans un TextView :

TextView txtUS = FindViewById<TextView>(Resource.Id.txtUSD);

txtUS.Text = currencyData.rates.USD.ToString() +" USD";

 

Ainsi et suivant cette méthode on aura les valeurs obtenues du Web Services JSON affichées dans l’application Xamarin.Android. Le projet en entier est disponible dans le lien suivant : Ici !

 

Figure B : Aperçu des données depuis le Webservice

 image (1)

Partagez

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>