2
これは以前の質問と似ているかもしれませんが、 私はretrofit2を使って一つのリクエストで複数のフィールドや複数の画像を投稿する必要があると@Fieldは@FormUrlEncodedを必要とし@Partが必要ですので、私はRetrofit2の単一リクエストで@FieldMapと@Partを使用するとjava.lang.IllegalArgumentExceptionが発生します:1つのエンコーディングアノテーションのみが許可されています
java.lang.IllegalArgumentException: Only one encoding annotation is allowed.for method xxx
私は
@Multipart
@FormUrlEncoded
を使用しています。このエラーを取得しています@Multipart。 もっと論理的なことは@FormUrlEncodedアノテーションを削除することですが、そこからどうやって行くのですか? 質問は、私の投稿を1回のリクエストで送信するためのタスクについてどうやったらいいですか?
ここインターフェース
@Multipart
@FormUrlEncoded
@POST("upload")
Call<ResponseBody> uploadPost(@FieldMap Map<String, String> map,
@Part MultipartBody.Part image1,
@Part MultipartBody.Part image2,
@Part MultipartBody.Part image3);
なぜMapにRequestBodyがあるのですか?それにStringを使用することはできません。 – Herry
はい、使用できます。しかし、あなたは文字列コンバータを使用する必要があります このポストを見て[リンク](http://stackoverflow.com/questions/35520012/get-string-response-body-from-retrofit2) –