Base de connaissance Apps Panel

S’abonner

WS & Cache manager

APWSManager est un outil permettant la gestion automatique de requêtes WS Apps Panel.

La classe créé l'appel WS correspondant à l'action désirée puis télécharge les données, les traite et les enregistre en cache dans l'application de manière automatisée.

 

L’exemple ci-dessous vous permet de lancer une requête vers le webservice /test de votre application:

APWSStringRequest request = new APWSStringRequest(APWSManager.HttpMethod.GET, "/test");
APWSManager.doRequest(request);

Les méthode disponible sont les suivantes:

GET

POST

PATCH

PUT

DELETE

Vous avez la possibilité de rajouter des paramètre GET via les méthode suivantes de la classe APWSRequest:

public void addGetParam(String key, String value)
public void addGetParam(String key, int value)
public void addGetParam(String key, long value)
public void addGetParam(String key, float value)
public void addGetParam(String key, boolean value)

1. Envoyer du contenu

Le module APWSManager vous permet d’envoyer du contenu à votre webservice, via les méthode POST, PUT, PATCH ou DELETE.

Pour ce faire, il convidra d’utiliser l’une des méthodes suivantes de la classe APWSRequest:

public void addPostParam(String key, String value)
public void addPostParam(String key, int value)
public void addPostParam(String key, long value)
public void addPostParam(String key, float value)
public void addPostParam(String key, boolean value)

Vous avez également la possibilité d’envoyer des fichiers via les méthodes:

public void addFile(String key, String fileName, String filepath)
public void addFile(String key, String fileName, File file)
public void addFile(String key, String fileName, InputStream inputStream)
public void addFile(String key, String fileName, byte[] bytes)

2. Exemple complet d’un appel de webservice

Le code suivant permet de lancer un appel vers le webservices /test de votre application, avec la méthode HTTP PATCH, un paramètre GET, un paramètre en POST, et un fichier texte.

request = new APWSStringRequest(APWSManager.HttpMethod.PATCH, "/test");
request.addGetParam("paramGet1", "valueGet1");
request.addPostParam("paramPost1", "valuePost1");
request.addFile("paramFile1", "filename1", new File("mon chemin"));
APWSManager.doRequest(request);

3. Gestion du cache

Le cache est utilisé de trois façons différentes.

1. Gestion du cache local

Il est possible de définir qu’un appel d’un webservice GET utilise un cache stocké en local, si le dernière appel date de moins de X secondes, et que l’ensemble des paramètres GET soient identiques.

Pour cela, il conviendra d’indiquer une valeur pour le champ cacheMaxAge.

request = new APWSStringRequest(APWSManager.HttpMethod.POST, "/test");
request.setUseLocalCache(true);
request.setCacheMaxAge(30);
APWSManager.doRequest(request);

2. Utilisation du cache local si aucun changement n’existe

Reprenant le principe énoncé dans le point précédent, il est possible de ne pas télécharger le réponse d’un webservice, si celle-ci est identique à un appel ayant déja été effectué. Cela évitera donc de télécharger un ensemble de données que le téléphone possède déjà, et réduit donc de façon importante le temps d’appel.

Pour ce faire, il conviendra d’activer d’utiliser la fonction setUseLocalIfNoChange(boolean useLocalIfNoChange):

request = new APWSStringRequest(APWSManager.HttpMethod.POST, "/test");
request.setUseLocalIfNoChange(true);
APWSManager.doRequest(request);

3. Utilisation du cache local en cas d’erreur

Cela vous permet d’utiliser facilement le cache local de votre téléphone, si une erreur survient lors de l’appel de votre webservice.

request = new APWSStringRequest(APWSManager.HttpMethod.POST, "/test");
request.setUseLocalOnError(true);
APWSManager.doRequest(request);

4. Gestion des callbacks

La classe OnAPWSCallListener vous permet de catcher les différents évènements et retours du manager de webservice.

Vous pourrez au travers de cette interface, récupérer le résultat d’un appel, détecter un erreur, ou bien même executer un eaction avant ou après l’appel.

public abstract void onResponse(APWSRequest request, T response);
public void onError(APWSRequest request, int httpCode, String responseContent){}
public void onNoConnection(APWSRequest request, String cacheContent, long cacheTimestamp){};
public void onDownloadProgressChanged(APWSRequest request, long totalToDownload, long totalDownloaded){};
public void onUploadProgressChanged(APWSRequest request, String paramName, long toUpload, long uploaded, long totalToUpload, long totalUploaded){};
public void doBefore(APWSRequest request){};
public void doAfter(APWSRequest request){};
public void onCancel(){};

Cette interface s’utilise donc de la façon suivante:


request = new APWSStringRequest(APWSManager.HttpMethod.PATCH, "/test");
request.addGetParam("paramGet1", "valueGet1");
request.addPostParam("paramPost1", "valuePost1");
request.addFile("paramFile1", "filename1", new File("mon chemin"));
OnAPWSCallListener onAPWSCallListener = new OnAPWSCallListener() {
 @Override
 public void onResponse(APWSRequest request, String response) {
    Log.d(TAG, "La résponse est: " + response);
 }
};
request.setOnAPWSCallListener(onAPWSCallListener);
APWSManager.doRequest(request);
Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 0 sur 0
Vous avez d’autres questions ? Envoyer une demande