2016-02-25 2 views
0

J'utilise Retrofit 2 pour envoyer des appels d'API au serveur, mais avec des paramètres, j'ai besoin d'envoyer un tableau de chaînes qui doivent être exclues de la réponse de l'API.Comment ajouter un tableau de chaînes dans HashMap <String, String>, puis envoyer avec Retrofit?

je dois envoyer des paramètres tels que deviceToken, FEEDTYPE et envoyer également un tableau de chaînes exclues, donc mon URL avec exclure les chaînes devraient ressembler à ceci:

http://test.com?test[]=1&test[]=2&test[]=3 

Bien sûr, il y a d'autres exigences manquantes.

Prenez regard sur cette ligne de code:

params.put("exclusions", Arrays.deepToString(arr));

Voici mon code:

@GET("enquiry/user-feed/") 
Call<UserFeed> userFeed(@QueryMap Map<String, String> params); 

HashMap<String, String> params = new HashMap<String, String>(); 

params.put("deviceToken", getDeviceToken()); 
params.put("feedType", feedType[0]); 
params.put("feedOrder", order); 
params.put("feedLimit", String.valueOf(limit)); 

Log.d("TAG", "exclusions: : "+ Arrays.deepToString(arr)); 
params.put("exclusions", Arrays.deepToString(arr)); 

Répondre

0

Le problème est pas lié à rénover al tous. Vous avez un ordre flottant car java.util.HashMap ne garantit pas l'ordre. Vous devriez utiliser LinkedHashMap à la place pour obtenir l'ordre des éléments fixes.

source: https://stackoverflow.com/a/31748890/1949658

+0

Pourquoi LinkedHashMap? Le problème est que je ne peux pas ajouter un tableau de chaînes à la table de hachage qui accepte la chaîne pour la clé et la valeur – Zookey

0

utilisation LinkedHashMap

LinkedHashMap<String, String> params = new LinkedHashMap<String, String>(); 

params.put("deviceToken", getDeviceToken()); 
params.put("feedType", feedType[0]); 
params.put("feedOrder", order); 
params.put("feedLimit", String.valueOf(limit));