Определение интерфейса Retrofit2 - метод без тела ответа

Я определяю объекты Call в интерфейсе Retrofit2, чтобы использовать внешний API отдыха.

Для большинства звонков у нас есть что-то похожее на:

@POST("/api/v1/methodEndPoint")
public Call<MethodResponse> methodName(@Body MethodRequest methodRequest);

Однако мой вопрос: как мне определить метод, если нет объекта Response (вызов POST, без тела ответа, мы просто помним о статусе). Модификация выдает исключение, если я просто напишу следующее:

@POST("/api/v1/methodEndPoint")
public Call methodName(@Body MethodRequest methodRequest);

Спасибо за вашу помощь, хорошего дня!

2 ответа

Решение

Для определения метода без ответа в Retrofit 2 тип возвращаемого метода должен быть Void

Вы можете попробовать как:

@POST("/api/v1/methodEndPoint")
Call <Void> methodName(@Body MethodRequest methodRequest);

Использование ResponseBody, В принципе, вы можете сделать это так:

@POST("/api/v1/methodEndPoint")
public Call<ResponseBody> methodName(@Body MethodRequest methodRequest);

Вы будете иметь доступ к onResponse а также onFailure обратные вызовы, однако не будет попытки десериализации данных

Другие вопросы по тегам