Определение интерфейса 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
обратные вызовы, однако не будет попытки десериализации данных