Ich möchte eine HashMap und ein Objekt mit Retrofit veröffentlichen. Ich habe diesen Code unten versucht, aber IllegalArgumentException
erhalten.Retrofit 2 - Post FieldMap mit Body-Objekt
@POST("update")
Call<RSP010> postApi010(@FieldMap HashMap<String, String> defaultData, @Body User user);
Logcat
java.lang.IllegalArgumentException: @FieldMap parameters can only be used with form encoding. (parameter #1)
Aber wenn ich @FormUrlEncoded
hinzufügen. Er sagte
java.lang.IllegalArgumentException: @Body parameters cannot be used with form or multi-part encoding. (parameter #2)
UPDATE CODE
public static HashMap<String, String> defaultData(){
HashMap<String, String> map = new HashMap<>();
map.put("last_get_time", String.valueOf(SharedPreferencesHelper.getLongValue(AppConstants.LAST_GET_UPDATE)));
map.put("duid", SharedPreferencesHelper.getStringValue(AppConstants.DUID));
return map;
Mein Objekt, das ich
int profile_id;
private String name;
private String name_kana; // あいうえお
private int gender; // 1 nam 2 nu
private String birth_day;
private String birth_time;
private String birth_place;
private String relationship;
Erklären stellen:
ich mehrere Variablen über API-Server stellen . FieldMap defaultData
für Standardvariablen, die ich in jeder API verwenden möchte.
https://futurestud.io/tutorials/retrofit-send-objects-in-request-body Ich habe das gelesen, es sagte, anstatt alle separaten Variablen eines Objekts zu veröffentlichen, kann ich ein Objekt direkt posten.
können Sie Problem mit Daten und api Unterschrift erklären? –
@PratikPopat I Code aktualisiert und erklären. – TruongHieu
hier gehen Sie, überprüfen Sie [this thread] (http://stackoverflow.com/a/34392376/3800164) –