【问题标题】:Android:Refresh accesstoken using asynchronous call in retrofitAndroid:在改造中使用异步调用刷新访问令牌
【发布时间】:2016-09-27 14:16:18
【问题描述】:

我正在开发一个android 应用程序,它需要accesstoken 用于所有api calls。 AccessToken 每 10 分钟过期一次。我正在使用retrofit 为api calls。目前我正在做的是首先使用getAccessToken() 方法获得accesstoken,作为回应,我制作了其他api calls,因此它确认了其他api calls(如获取用户信息)只有在获取accesstoken后才会生成。这工作正常,但由于我的应用程序中有很多 api 调用,我需要在每个类(片段或活动)中编写 getAccessToken() 方法的相同代码,并在响应中编写相应的 api calls。
那么有什么办法可以避免在每个类中出现这种重复的代码,或者我的做法是正确的。

【问题讨论】:

    标签: android retrofit access-token retrofit2


    【解决方案1】:

    试试静态函数。

    public class Utility {
        public static String getAccessToken(Context context) {
            //Do the calculation here
            return accessToken;
        }
    }
    

    当您需要从您的活动或片段中获取访问令牌时调用此方法

    Utility.getAccessToken(context);
    

    【讨论】:

      【解决方案2】:

      你可以使用 Retrofit Interceptors.

      每个使用改造的请求都通过你的 interseptor 获得你的 access_token。

      它在你的拦截器中看起来像这样:

      Request request = chain.request();
      request.header("header_name", Utility.getAccessToken());
      Response response = chain.proceed(request);
      

      【讨论】:

      • 问题是如何在Interceptor类中进行异步调用
      猜你喜欢
      • 2023-01-25
      • 2019-06-29
      • 2020-07-12
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 2018-04-28
      • 2022-08-06
      相关资源
      最近更新 更多