2014-02-19 42 views
10

我有一個實例,我需要將多個相同的命名參數傳遞給服務器(數據數組)。如何使用Retrofit添加多個相同的/數組參數?

改變它是不可能的。

http://test.com?test[]=1&test[]=2&test[]=3 

我如何用RetroFit完成此操作?我發現你可以傳遞值的映射,但這並不能解決問題,因爲密鑰都是完全相同的。

任何幫助將是偉大的...真的希望有一個乾淨的方式/解決方法,否則我將需要使用另一個API庫,並做一個項目重構。

+1

是否使用改裝1.4 +?它看起來像數組被添加到一個字段,但我還沒有嘗試過。 '*新增功能:@Field現在接受List或多個值的數組.' '*新功能:@Query和@EncodedQuery現在接受多個值的List或數組。' – daentech

+0

您是對的。幾個小時前發現。如果你做出答案,我會將其標記爲解決方案。 – loeschg

+1

我不會稱之爲奇怪。 html複選框和選擇多個控件都會像這樣對錶單進行編碼。 – CaptRespect

回答

17

從1.4.0開始的改造增加了將數組或列表作爲@Field@Query參數發送的功能。

New: @Query and @EncodedQuery now accept List or arrays for multiple values. 
New: @Field now accepts List or arrays for multiple values. 
+1

源代碼中的相關行可以在這裏找到:https://github.com/square/retrofit/pull/377/files#diff-e552fa8d902af2d67bfdc6362c246f56L190 – loeschg

+0

任何想法如何解決與多部分中的部分參數類似的問題可以解決? –

+0

他們如何得到編碼我想知道?我會看看上面提到的拉取請求。 –

相關問題