首页 > 解决方案 > 改造 - 删除为空,但响应主体类型被声明为非空

问题描述

因此,在我删除 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 返回码被抛出

标签: androidkotlinmvvmretrofitandroid-architecture-components

解决方案



推荐阅读