2016-10-02 23 views
2

這看起來可能與先前的問題類似,但實際上沒有一個能夠回答我的問題。 我需要使用retrofit2發佈到多個領域,多個圖像中的一個請求,因爲@Field需要@FormUrlEncoded和@part需要我得到這個錯誤在Retrofit2的單個請求中使用@FieldMap和@Part獲取java.lang.IllegalArgumentException:只允許一個編碼註釋。方法

java.lang.IllegalArgumentException: Only one encoding annotation is allowed.for method xxx 

我使用

@Multipart 
@FormUrlEncoded 

@Multipart。 更合乎邏輯的做法是刪除@FormUrlEncoded註釋,但我怎麼去那裏。 現在的問題是我如何去完成任務來實現發送我的文章在一個請求。

這裏的接口

@Multipart 
@FormUrlEncoded 
@POST("upload") 
Call<ResponseBody> uploadPost(@FieldMap Map<String, String> map, 
         @Part MultipartBody.Part image1, 
         @Part MultipartBody.Part image2, 
         @Part MultipartBody.Part image3); 

回答

1
@Multipart 
@POST("upload") 
Call<ResponseBody> uploadPost(
     @PartMap() Map<String, RequestBody> descriptions, 
     @Part List<MultipartBody.Part> images); 

使用這個接口。

+0

爲什麼在Map中有RequestBody我們不能使用String – Herry

+0

是的,你可以使用它。但爲此,你必須使用字符串轉換器 看看這篇文章[鏈接](http://stackoverflow.com/questions/35520012/get-string-response-body-from-retrofit2) –

相關問題