Wie zum senden von Arrays / Listen mit Retrofit
Muss ich sende eine Liste /ein array von Integer-Werten mit Retrofit auf dem server (per POST)
So mache ich es:
@FormUrlEncoded
@POST("/profile/searchProfile")
Call<ResponseBody> postSearchProfile(
@Field("age") List<Integer> age
};
aus und senden Sie es wie diese:
ArrayList<Integer> ages = new ArrayList<>();
ages.add(20);
ages.add(30);
ISearchProfilePost iSearchProfile = gsonServerAPIRetrofit.create(ISearchProfilePost.class);
Call<ResponseBody> call = iSearchProfile.postSearchProfile(
ages
);
Das problem ist, die Werte erreichen die server nicht durch Komma getrennt. Also die Werte sind wie Alter: 2030 statt Alter: 20, 30.
War ich zu Lesen (z.B. hier https://stackoverflow.com/a/37254442/1565635), dass einige Erfolg hatten, indem Sie die parameter mit [] wie ein array, aber das führt nur zu Parametern aufgerufen Alter[] : 2030.
Ich habe auch versucht, mit Hilfe von Arrays, also Listen mit Strings. Gleiche problem. Alles kommt direkt zu einem Eintrag.
Also, was kann ich tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Senden als Objekt
Dies ist Ihre ISearchProfilePost.class
Hier geben Sie den post-Daten in der pojo-Klasse
Ihre retrofit-call-Klasse
Senden als Array, Liste, überprüfen Sie diesen link https://github.com/square/retrofit/issues/1064
Du vergessen, hinzuzufügen
age[]
Nachrüsten kann dies nun zumindest getestet habe ich mit dieser ->
implementation 'com.squareup.retrofit2:retrofit:2.1.0'
Beispielsweise
Dies ist der Teil, den wir betrachten.