HttpsURLConnection Authenticator错误

时间:2018-06-29 19:37:31

标签: java android authentication

我在使用Authenticator Android方法时遇到了麻烦。

此方法有效并返回200代码(HTTP_OK):

Authenticator.setDefault(new Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication("admin", "1234".toCharArray());
                }
            });

但为了生动起来,我向用户发送了值:

urlConnection = new URL(params[0]);
user = params[1];
pass = params[2];

将身份验证更改为:

return new PasswordAuthentication(user, pass.toCharArray())

做了一个测试: 用户/密码:“测试”。

我想收到401码(HTTP_UNAUTHORIZED

当我调试并单击f7 / f8时,有时我会在响应代码中看到401,但是我无法返回它,因为似乎他进入了一个循环:

httpUrlConnection.getResponseCode();

这是我的代码的一部分:

.....    

    httpUrlConnection.setConnectTimeout(2000);
    httpUrlConnection.connect();
    statusCode = httpUrlConnection.getResponseCode(); //debug stop here
    httpUrlConnection.disconnect(); 
} catch (IOException e) {
    e.printStackTrace();
}
return statusCode;

有什么提示吗?

1 个答案:

答案 0 :(得分:0)

问题出在服务器上。

身份验证方法为“ Basic”。

将其更改为“ Digest”,服务器仅尝试一次身份验证,直到可以登录时才递归进行。

修改

但是要注意,因为

  

HttpUrlConnection不支持指向here的摘要