我在我的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());
}
}
}
在请求中添加基本身份验证标头。这是理想的行为吗?