Ich sende eine POST-Nachricht mit Retrofit2, um eine Datei plus ein paar Parameter hochzuladen. Einige der Parameter sind Wörterbücher. Um dies zu tun, ich habe folgende:POST eines Wörterbuchs mit @PartMap
@Multipart
@POST("incidents")
Call<MachineRequest> sendMachineRequest(@PartMap Map<String, RequestBody> partMap, @Part MultipartBody.Part image;
Das Problem ist: Es scheint, als ob ich nur Strings als Wert für meine Parameter hochladen. Ich benutze RequestBody create(MediaType contentType, String content)
, um Einträge für die @PartMap Map zu erstellen. Natürlich müssen die Wörterbücher Strings sein, die in den RequestBody passen. Dies führt jedoch zu einer falschen Interpretation im Rails-Backend. Die Werte werden als String und nicht als Dictionary interpretiert.
"incident"=>"{\"type\":\"MachineRequest\"}"
statt
"incident"=>{\"type\":\"MachineRequest\"}
Also meine Frage ist: Wie kann ich ein Wörterbuch in @PartMap hinzufügen, oder wie kann ich eine ReqeustBody erstellen, die ein Wörterbuch hält?
Ein Kommentar für den Downvote wäre nett. Wie sonst könnte ich meine Frage möglicherweise verbessern? –