0

在我的 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作为第三方库进行身份验证。该库的注销端点有一个内置的 LogoutView,它在成功注销后返回“204 no content”响应。该文档建议不要更改 LogoutView,因为修改会导致不可预知的结果。但是虽然注销请求在服务器端成功,Retrofit 将“204 no content”响应视为异常。正如我在上面的代码片段中提到的,catch 子句被执行。

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

4

0 回答 0