我在使用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;
有什么提示吗?
答案 0 :(得分:0)
问题出在服务器上。
身份验证方法为“ Basic
”。
将其更改为“ Digest
”,服务器仅尝试一次身份验证,直到可以登录时才递归进行。
修改:
但是要注意,因为
HttpUrlConnection
不支持指向here的摘要