Я использую Retrofit для отправки данных формы и получения обратно XML. То, что я до сих пор прекрасно работает, но хочу внести некоторые изменения. Вот мой существующий код (и это работает):Android-модификация, сериализация параметров POST
Вот мой интерфейс
public interface SignupUser
{
@FormUrlEncoded
@POST("/createaccount.cfm")
SignupServerResponse signup(@Field("e") String email, @Field("p") String password);
}
Вот код для вызова API (опять же, это работает отлично, я объясню ниже того, что я хочу изменить)
SignUpDetails mDeets; // this gets initialize and set somewhere else
RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint("http://myurl.com")
.setConverter(new SimpleXMLConverter()).build(); // the response is xml, that works fine
SignupUser service = restAdapter.create(SignupUser.class);
SignupServerResponse res = service.signup(mDeets.getE(), mDeets.getP());
Как я могу сделать это так, что я могу передать в SignUpDetails объект прямо на Signup() метод вместо прохождения в отдельных строках? Когда я изменить конструктор регистрации(), чтобы принять SignUpdetails объект (см ниже) и передать мое SignUpDetails объекту, я получаю сообщение об ошибке сказав
Нет дооснащение Аннотация Найдено
Вот как я бы хотел бы определить интерфейс
public interface SignupUser
{
@FormUrlEncoded
@POST("/createaccount.cfm")
SignupServerResponse signup(SignUpDetails deets);
}
И называть это так (вместо прохождения всех этих параметров)
SignupServerResponse res = service.signup(mDeets);
Я попытался добавить @Field над каждым из моих переменных в классе SignUpDetails и что не работает либо (ошибка компиляции)
Вы нашли решение этой проблемы? Я сталкиваюсь с тем же. –