2014-09-17 3 views
2

Я хотел бы, чтобы послать запрос POST с содержанием вроде следующего:Модернизация: возможно ли передать фасоль и получить форму?

api=1&os=android&appVersion=12345 

Можно ли иметь POJO только с того, что переменные и передать в

@FormUrlEncoded 
@POST("/sendData") 
void sendData(@FieldMap MyPojo myPojo, Callback<MyResponse> callback); 

С FieldMap это не работает, есть ли другой способ?

ответ

2

К сожалению, это не сработает. У вас есть два варианта:

  • Если у вас есть только несколько Pojos, вы можете определить метод MyPojo.toFieldMap() построить поле карты значений формы и передать его в ваш метод sendData().

  • Если у вас есть большое количество Pojos, вы можете написать обычай FormEncodedConverter, реализовав в вашем проекте интерфейс Converter. Я считаю, что для этого вам понадобится комбинация аннотаций и размышлений, чтобы обнаружить публичных членов вашего класса MyPojo. Примеры пользовательских преобразователей доступны here.