Ich verwende Retrofit, um einige Daten an mein Back-End POST. Ich muss 3 Strings und ein benutzerdefiniertes Place-Objekt senden. Hier ist, was ich tue:Verwenden Sie @Field und @ Body-Parameter in Retrofit zusammen
@POST("/post/addphoto/")
public void addImage(@Field("image_url") String url, @Field("caption") String caption, @Field("google_place_id") String placeId, @Body Place place, Callback<UploadCallBack> response);
Damit ich diesen Fehler:
@Field parameters can only be used with form encoding.
Und wenn ich @FormUrlEncoded
verwenden, wie folgt aus:
@FormUrlEncoded
@POST("/post/addphoto/")
public void addImage(@Field("image_url") String url, @Field("caption") String caption, @Field("google_place_id") String placeId, @Body Place place, Callback<UploadCallBack> response);
ich diesen Fehler :
@FormUrlEncoded or @Multipart can not be used with @Body parameter.
Wie kann ich es funktionieren lassen?
Tiwari, kann ich wissen, ob Sie image_url wollen an/post/addphoto url angehängt werden? – cgr
@cgr Nein, ich möchte es nicht anhängen. Eigentlich ist image_url die URL eines Bildes von Facebook, das ich zusammen mit einigen anderen Feldern im Backend speichern möchte. Das Place-Objekt wird für den Standort abgerufen, der mit diesem aus Facebook extrahierten Bild verknüpft ist. –
Soweit ich weiß, müssen Sie die Situation betrachten, als ob Sie nur 1 Platz haben, um die Daten in der Anfrage zu halten, es wird entweder RAW (Körper) oder Form-förmig sein (FormUrlEncoded + Part), also hier ist es wie Sie versuchen, 2 Datenstrukturen an einem Ort zu mischen, dies ist nicht möglich – Yazan