【问题标题】:Retrofit handling token expiration改造处理令牌过期
【发布时间】:2019-03-21 03:15:11
【问题描述】:

现在我正在使用 Retrofit 从服务器中获取数据。 问题是我需要每 1 小时调用一次 API 以获取新令牌,到目前为止,我正在运行后台服务以在 1 小时到期之前获取新令牌,以防万一 API 响应因令牌过期而失败,我调用 API 令牌,而不是再次调用该方法。

我的问题:在改造中是否有内置方法来处理令牌过期? 或类似的东西。

【问题讨论】:

    标签: android api android-volley retrofit token


    【解决方案1】:

    改造旨在帮助您处理所需的请求。它不处理令牌过期。这意味着,您需要自己处理。例如,在您的请求错误处理中,您可以检查 401 错误 Unauthorized(这通常是令牌过期时服务器发送的错误)。发生这种情况时,请保留失败的请求并发送另一个新令牌请求。新请求成功完成后,您的令牌将被刷新,您可以使用新获取的令牌重试初始失败的请求。

    【讨论】:

    • 是的,这就是我现在正在做的事情,我试图找出是否有更简单的方法或者这是唯一的方法
    【解决方案2】:

    我认为你可以使用 OkHttp 拦截器来捕获任何请求的 401 Unauthorized,然后刷新你的令牌并重试你的请求。

    https://futurestud.io/tutorials/retrofit-2-catch-server-errors-globally-with-response-interceptor

    全局错误处理程序:OkHttp 拦截器

    【讨论】:

      猜你喜欢
      • 2019-09-05
      • 2016-11-13
      • 2023-03-20
      • 1970-01-01
      • 2021-09-06
      • 2021-10-19
      • 2015-10-05
      • 2019-12-11
      相关资源
      最近更新 更多