我有一個實例,我需要將多個相同的命名參數傳遞給服務器(數據數組)。如何使用Retrofit添加多個相同的/數組參數?
改變它是不可能的。
http://test.com?test[]=1&test[]=2&test[]=3
我如何用RetroFit完成此操作?我發現你可以傳遞值的映射,但這並不能解決問題,因爲密鑰都是完全相同的。
任何幫助將是偉大的...真的希望有一個乾淨的方式/解決方法,否則我將需要使用另一個API庫,並做一個項目重構。
我有一個實例,我需要將多個相同的命名參數傳遞給服務器(數據數組)。如何使用Retrofit添加多個相同的/數組參數?
改變它是不可能的。
http://test.com?test[]=1&test[]=2&test[]=3
我如何用RetroFit完成此操作?我發現你可以傳遞值的映射,但這並不能解決問題,因爲密鑰都是完全相同的。
任何幫助將是偉大的...真的希望有一個乾淨的方式/解決方法,否則我將需要使用另一個API庫,並做一個項目重構。
從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.
源代碼中的相關行可以在這裏找到:https://github.com/square/retrofit/pull/377/files#diff-e552fa8d902af2d67bfdc6362c246f56L190 – loeschg
任何想法如何解決與多部分中的部分參數類似的問題可以解決? –
他們如何得到編碼我想知道?我會看看上面提到的拉取請求。 –
我使用改裝:1.9.0,做http://test.com?test[]=1&test[]=2&test[]=3的一種方式是這樣的
void test(@Query("test[]") ArrayList<String> values);
是否使用改裝1.4 +?它看起來像數組被添加到一個字段,但我還沒有嘗試過。 '*新增功能:@Field現在接受List或多個值的數組.' '*新功能:@Query和@EncodedQuery現在接受多個值的List或數組。' – daentech
您是對的。幾個小時前發現。如果你做出答案,我會將其標記爲解決方案。 – loeschg
我不會稱之爲奇怪。 html複選框和選擇多個控件都會像這樣對錶單進行編碼。 – CaptRespect