android中的DefaultHTTPClient在获得401后在每个请求中发送基本的auth头

时间:2014-09-05 11:43:08

标签: apache-httpclient-4.x apache-httpcomponents

我在我的Android应用程序中使用DefaultHTTPClient连接到服务器。 登录URL受基本身份验证方案保护,该方案涉及多个重定向。

我面临的问题是,在第一次获得401之后,HttpClient在后续请求中添加了相同的基本授权头,因为在生产环境中存在一些副作用,。

这是所需的流程: 302 - > 302> 401> 302> 302> 200(由于中间响应设置了cookie,报告了200)

但现在我得到了: 302> 302> 401> 302> 302> 401

所有以粗体标记的请求都包含基本授权标题。

请告诉我如何解决此问题/解决方法?

修改-1

在调试时:我发现收到第一个401后的authscheme没有因为RequestTargetAuthentication中的代码而被更改:

 if (authState.getAuthScope() != null || !authScheme.isConnectionBased()) {
            try {
                request.addHeader(authScheme.authenticate(creds, request));
            } catch (AuthenticationException ex) {
                if (this.log.isErrorEnabled()) {
                    this.log.error("Authentication error: " + ex.getMessage());
                }
            }
        }

在请求中添加基本身份验证标头。这是理想的行为吗?

0 个答案:

没有答案