2014-02-19 3 views
10

У меня есть экземпляр, где мне нужно передать несколько одинаковых параметров имени на сервер (массив данных).Как добавить несколько параметров того же/массива с помощью Retrofit?

Изменение не является возможным.

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

Как это сделать с помощью RetroFit? Я вижу, что вы можете передать карту значений, но это не помогает, поскольку все ключи идентичны.

Любая помощь была бы большой ... действительно надеясь, что есть чистый способ/обходной путь, иначе мне понадобится использовать другой api lib и сделать рефактор проекта.

+1

Вы используете переоснащения 1.4 +.? Похоже, массивы были добавлены в поле, но я еще не пробовал это. '* New: @Field теперь принимает список или массивы для нескольких значений.' '* Новое: @Query и @EncodedQuery теперь принимают список или массивы для нескольких значений.' – 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

Любая идея, как можно решить подобную проблему с параметром Part в Multipart? –

+0

Как они кодируются? Интересно? Я рассмотрю упомянутый выше запрос на вытягивание. –