【发布时间】:2020-11-12 09:16:15
【问题描述】:
所以,在我删除 API 中的特定主题后,它会向我抛出此错误消息
deleteTopic 为空,但响应正文类型被声明为非空
主题已成功删除,但在我的客户端中,此响应以某种方式在我的 catch 块中解决
服务
@DELETE("topics/{id}")
suspend fun deleteTopic(@Path("id") id:String)
回购
override suspend fun deleteTopic(id: String): Resource<Unit> {
return Resource.Success(RetrofitClient.webservice.deleteTopic(id))
}
视图模型
fun deleteTopic(id:String) = liveData(Dispatchers.IO) {
emit(Resource.Loading())
try {
emit(repo.deleteTopic(id))
}catch (e:Exception){
emit(Resource.Failure(e))
}
}
由于某种原因,我成功删除了服务器中的主题,但是当它返回到我的客户端时,它会进入 catch 并返回我上面提到的这个异常,响应是 204 而不是内容,但是我该如何解决这个响应成功地告诉我这个操作已经正确完成了?
我很困惑,我在 github 上读到我必须返回 Response<Unit> 但我仍然很困惑为什么我应该这样做,它还说返回会阻止我的 4xx 返回码被抛出
【问题讨论】:
标签: android kotlin mvvm retrofit android-architecture-components