2017-07-24 23 views
0

我想使用Retrofit進行API調用。 該調用將基本上發送一些數據,連同一個圖像。 這是我寫的東西:Android Retrofit只允許使用一種編碼註釋

@POST("notes/new") 
@Multipart 
@FormUrlEncoded 
Call<Note> getData (@Field("title") String title, 
        @Field("note") String note, 
        @Header("Authorization") String auth, 
        @Part MultipartBody.Part file, 
        @Part("file")RequestBody image); 

可以看出,代碼中有兩種編碼:在@Multipart支持圖片上傳和@FormurlEncoded需要使用@Field註釋時使用。所以,如果其中任何一個都不存在,我就無法工作。一次只允許一個Encoding註釋。 我該如何解決這個問題?請幫助

回答

0

據我所知,你不能同時執行FormUrlEncoded和Multipart。

定義你的界面是這樣的:

@POST("notes/new") 
@Multipart 
Call<Response> postFile(@Part MultipartBody.Part title,..., @Part MultipartBody.Part file,...); 

而對於每一個已經@Field,您撥打的服務,你會做到這一點在你的代碼參數:

String title = "MyTitle"; 
final MultipartBody.Part titlePart = MultipartBody.Part.createFormData("title", title); 
0

我找到了一個更好嘗試周圍後的方式。 希望這可以幫助任何其他人

@POST("notes/new") 
@Multipart 
Call<Note> getData (@Part ("title") String title, 
        @Part("note") String note, 
        @Header("Authorization") String auth, 
        @Part MultipartBody.Part file, 
        @Part("file")RequestBody image); 
相關問題