2016-04-05 16 views
0

Ich muss die folgende Abfragezeichenfolge von RetroFit generieren. Ich weiß, dass ich Abfrageelemente einfach genug wiederholen kann. formatiert muss es einfach so, dass jedes Element die Form der Prüfung nimmt [id] [Punkte] = ParameterRetroFit komplexe Abfrageparameter

//Assume Assessment contains the id and the parameter 
@PUT("url") 
Call putElements(@Query(???) Assessment... assessmentIds); 

Ausgabe: https://baseurl.com/url?assessment[id1][points]=3&assessment[id2][points]=5

Gibt es eine saubere Art und Weise dies in RetroFit zu erreichen?

Antwort

2

Ja, Sie suchen @QueryMap

Sie es wie folgt verwenden:

// sender 
Map<String,String> parameters = new HashMap<>(); 
parameters.add("assessmentid1points", "3"); 
parameters.add("assessmentid2points", "5"); 
parameters.add("key3", "value3"); 

yourObject.putElements(parameters); 

// receiver interface 
@PUT("url") 
Call putElements(@QueryMap Map<String,String> parameters); 

ich geschrieben habe ein paar Tutorials auf Retrofit 1 und 2, falls Sie sie überprüfen aus, here