2016-07-03 11 views
0

Ich benutze Retrofit mit einem Server zu kommunizieren.Android Nachrüstung senden 2d Array

Ich möchte ein 2D-Array senden, die wie diese

album[0][uuid]:test 
album[0][title]:test 
album[0][public_text]:aaaaaalhjkl 
album[0][private_text]:aaaaaalhjkl 
album[1][uuid]:test2 
album[1][title]:test2 
album[1][public_text]:aaaaaalhjasdfkl 
album[1][private_text]:aaaaaalhasdfjkl 

in einem anderen Gespräch sein würde, wenn ich nur die UUID senden benötigt habe ich versucht, diese und es funktionierte

Call<response> deleteAlbum(@Header("token") String userToken, @Field("album[][uuid]") ArrayList<String> uuid); 

und i‘ Ich übergebe einen String-Arraylisten und es funktioniert gut. Aber hier habe ich eine komplexere pararigm und ich weiß nicht, was zu tun ist. Wenn ich so etwas wie dies

Call<response> updateAlbum(@Header("token") String userToken, @Field("album[][uuid]")ArrayList<String> ablumids,@Field("album[][title]")ArrayList<String> title,@Field("album[][public_text]")ArrayList<String> public_text,@Field("album[][private_text]")ArrayList<String> private_text); 

der Server nur liest das erste Feld (UUID) und antwortet mit versuchen, „es gibt nicht genug Parameter“. Hat jemand irgendwelche Ideen wie man das löst?

Danke

Antwort

0

ok so i

die Antwort dachte

der Anruf

Call<response> updateAlbum(@Header("token") String userToken, @FieldMap Map<String, String> ablumids); 

und übergeben die Daten wie diese

HashMap<String, String> t = new HashMap<String, String>(); 
    t.put("album[0][uuid]","test"); 
    t.put("album[0][title]","changeTitleTest2"); 
    t.put("album[0][public_text]","aaaaaalhjkl"); 
    t.put("album[0][private_text]","aaaaaalhjkl"); 

Ich weiß nicht, ob sein muss es ist die beste Lösung, aber es funktioniert