如何在访问令牌过期时自动刷新令牌并在android中使用HttpURLConnection获取401?

时间:2017-01-12 04:37:37

标签: android httpconnection

我有如下所示的发布请求,如果访问令牌过期获取刷新令牌并且服务调用继续,我们可以像Retrofit 2.0拦截器一样自动执行吗?没有中断?

URL url = new URL(myurl + "?access_token=" + access_token);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(100000000 /* milliseconds */);
conn.setConnectTimeout(150000000 /* milliseconds */);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
conn.setRequestProperty("charset", "utf-8");
conn.setDoInput(true);
conn.connect();

当我们收到401响应代码时,有没有任何方法可以自动执行此操作?

1 个答案:

答案 0 :(得分:0)

据我所知,在任何框架中都没有提供此方法,因为这纯粹是基于需求的。您必须按照以下说明发布SERIAL电话:

  1. 使用访问令牌发布主要呼叫; Iff成功而不是Stop Else转到Step2
  2. 使用刷新令牌发布新访问令牌,如果成功更新访问令牌,则再次使用更新的访问令牌进行主要调用,如步骤1。
  3. 如果刷新令牌可以过期,则采用相同的方式处理,而不是以相同的SERIAL方式处理。
  4. 希望它有所帮助。