2014-02-19 122 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

他们如何得到编码我想知道?我会看看上面提到的拉取请求。 –

相关问题