В разработке клиента используется Retrofit.
Ситуация такая: в теле POST, валидатор на сервере ожидает несколько полей с одинаковым названием в числе многих, например:
- age: 20
- name: Vasya
- place: 1
- place: 2
- place: 3
и т.д. При попытке в лоб решить задачу, получается так:
@Multipart
post("/users")
void create(
@ Part("name") String name,
@ Part("age") String age,
@ Part("place") List<Integer> place,
Но выходит так, что Retrofit посылает
place '1,2,3' вместо того, чтобы отослать вообще отдельными полями
place '1' place '2' place '3'. По стечению обстоятельств желательно было бы не (до)-переделывать валидатор на сервере, а привести клиент к "правильному" состоянию. Параметров Place всегда очень разное количество. Были варианты использовать MultiMap, но Retrofit его не принимает, т.к. он не имплементирует нужных интерфейсов (он вообще pojo гугловский). Интересное замечание, что аннотация '@EncodedQuery' дает нужный эффект, но посылает данные не в теле POST, а через query string. Есть предложения по решению?