注销后如何使用 Retrofit 处理“204 no content”响应?

问题描述

在我的 Android 应用中,我有以下注销功能

suspend fun logout(token: String): NetworkResult<Unit> {
      return try{
          val logoutResponse = service.logout("Token $token")
          NetworkResult.Success(logoutResponse)
      }catch(e:Throwable){
          NetworkResult.Error(null)        // <-- after a successful logout,we proceeed with this line WHY ? 
      }
}

包含端点的 API 接口包含以下内容

@POST("logout")
suspend fun logout(@Header("Authorization") token: String)

在服务器端,我使用 django-rest-knox 作为 3rd 方库进行身份验证。该库的注销端点有一个内置的 logoutView,它在成功注销后返回“204 no content”响应。该文档建议不要更改 logoutView,因为修改会导致不可预测的结果。 但是尽管服务器端的注销请求成功,但 Retrofit 将“204 no content”响应视为异常。正如我在上面的代码片段中提到的,catch 子句被执行。

现在我的问题是:当请求成功时,为什么 Retrofit 会抛出异常?如何处理“204无内容”响应?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...