Здравствуйте, я пытаюсь реализовать почтовый запрос с помощью Retrofit 2.0.
Мой вопрос заключается в том, что показать Должен ли я писать в onResponse, чтобы получать данные, вводя данные от пользователя или вручную.
Спасибо
Здравствуйте, я пытаюсь реализовать почтовый запрос с помощью Retrofit 2.0.
Мой вопрос заключается в том, что показать Должен ли я писать в onResponse, чтобы получать данные, вводя данные от пользователя или вручную.
Спасибо
для метода публикации вы должны использовать теги @Body в интерфейсе
@POST("/api/Cards")
Call<List<Card>> createCards(@Body List<Card> cards);
и вызов из активности
Card card=new Card();
card.setId(20);
card.setTitle("New Cards");
card.setMessage("New Launched cards");
List<Card> cards=new List<Card>();
cards.add(card);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL).addConverterFactory(GsonConverterFactory.create())
.build();
RequestApi requestApi = retrofit.create(RequestApi.class);
mCardsRequest = requestApi.createCards(cards);
mCardsRequest.enqueue(new Callback<List<Card>>() {
@Override
public void onResponse(Call<List<Card>> call, Response<List<Card>> response) {
** what should I add here to post data **
}
@Override
public void onFailure(Call<List<Card>> call, Throwable t) {
//
}
});
onResponse
вызывается ПОСЛЕ завершения запроса. Вы не будете запрашивать ввод данных пользователем в обратном порядке (если только вы не выполняете несколько запросов или не связываете их в цепочку). Таким образом, вы уже должны иметь пользовательский ввод ДО запроса на дооснащение.
Таким образом, ваш обратный вызов onResponse — это место, где вы обрабатываете http-ответ:
@Override
public void onResponse(Call<List<Card>> call, Response<List<Card>> response) {
processResponse(response.body());
}
Но прежде чем отправить запрос (и получить ответ), вы можете добавить данные формы в свой запрос POST, вы можете сделать что-то вроде:
@POST("/api/Cards")
Call<List<Card>> createCards(@Body List<Card> cards,
// Sort the cards using a query string param
@Query("sort") String contractAccount),
// Set a group id parameter as the replacement block
@Path("id") int groupId);
createCards()
? - person IgorGanapolsky   schedule 03.04.2016postCards
в объект Loader, поскольку ваш ответ может поступить в более старый экземпляр действия и вызвать утечку памяти во время его обработки. - person Machinarius   schedule 03.04.2016