小编Thi*_*ere的帖子

在 Android 中的拦截器中执行另一个 API 调用是否有问题?

我在尝试刷新拦截器内的访问令牌时遇到问题。我已经读过对于这个问题最好使用身份验证器,但是我的 API 的工作方式是我收到一个未经授权的访问令牌的 403 错误(不是我的设计,但必须使用它)。

所以我试图调用 API 端点以在我的拦截器中获取一个新的访问令牌,但似乎第二个 API 调用在没有关闭它的情况下创建了一个 OKHTTP 响应。

override fun intercept(chain: Interceptor.Chain?): Response {

        var currentRequest = chain!!.request()
        val currentRequestResponse = chain.proceed( currentRequest )

        if ( currentRequestResponse.code() >= HTTP_ERROR_CODE && isNotLoginRequest( chain ) ) {

            try {

                // we check the response code, if there is 403 code we need to relog the user
                // before executing the request
                // try to reconnect the user with synchronous request


                val userManager = UserManager.getInstance()

                val clientId = getQueryParameter(UserService.CLIENT_ID_QUERY_KEY, …
Run Code Online (Sandbox Code Playgroud)

android interceptor kotlin okhttp retrofit2

7
推荐指数
1
解决办法
1524
查看次数

标签 统计

android ×1

interceptor ×1

kotlin ×1

okhttp ×1

retrofit2 ×1