2015-01-14 2 views
8

на Android, я изначально реализован интерфейс Дооснащаемый так:Модернизация, обратный звонок для 204 Нет ответа на контент?

@DELETE(USER_API_BASE_URL + "/{id}") 
public void deleteUser(@Path("id") String id, Callback<User> callback); 

Сервер возвращает 204 NO CONTENT после успешного удаления. Это заставило обратный вызов вызвать сбой, с retrofit.RetrofitError: End of input at character 0 of, так как он ожидал вернуть объект User с ответом.

я переписывал его, как это, используя Void вместо User:

@DELETE(USER_API_BASE_URL + "/{id}") 
public void deleteUser(@Path("id") String id, Callback<Void> callback); <-- VOID 

Но я получаю ту же ошибку от обратного вызова. Каков правильный способ исправить это? Спасибо.

+0

Как дооснащения можно сделать 'User' когда Ther нет контента в ответ? Почему вы хотите вернуть объект «Пользователь», когда он уже был удален? – mklimek

+0

Работает ли он с Callback ? Какую версию модификации вы используете? –

+0

эй Владимир, он действительно работает. Это не похоже на правильный способ, потому что сигнатура метода успешности обратного вызова - это «публичный успех void» (Response response1, Response response) {..} ', который выглядит немного странным. – ticofab

ответ

17

Retrofit 2.x больше не имеет ResponseCallback, как упоминалось в другой ответ. Вы хотите использовать тип Response<Void>.

RxJava декларация:

@PUT Observable<Response<Void>> foo(); 

Стандартная декларация:

@PUT Call<Response<Void>> bar(); 
+0

Но проблема в том, что даже если вызов веб-службы имеет ошибку, он выполняет блок успеха, а не блокирующий блок. – MobileMon

+0

. Я получаю «Невозможно сериализовать абстрактный класс okhttp3.ResponseBody» с модификацией и moshi 2.3.0 –

+0

@GregEnnis You're используя неправильный тип, это ответ от 'retrofit2.Response' –

8

Решение было указано Джейком Уортоном в комментариях. Используйте ResponseCallback.

EDIT: этот ответ больше не действителен для Модернизированный < 2.

+0

Эй, ребята, ссылка в этом ответе была недействительной. -_- ||| – codezjx

 Смежные вопросы

  • Нет связанных вопросов^_^