HttpsURLConnection 身份验证器错误
Posted
技术标签:
【中文标题】HttpsURLConnection 身份验证器错误【英文标题】:HttpsURLConnection Authenticator Error 【发布时间】:2018-06-29 19:37:30 【问题描述】:我在使用 Authenticator android Method 时遇到问题。
此方法有效并返回 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】:问题出在服务器上。
认证方式为“Basic
”。
将其更改为“Digest
”,服务器只尝试一次身份验证,而不是递归直到可以登录。
编辑:
但要注意,因为
HttpUrlConnection
不支持 here 指出的摘要
【讨论】:
以上是关于HttpsURLConnection 身份验证器错误的主要内容,如果未能解决你的问题,请参考以下文章
HttpClient 抛出 ssl 错误,但 webview 和 HttpsURLConnection 不会
HttpsURLConnection 的禁用证书验证仍然出现 javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure
Android:当密码错误时,带有 Authenticator 的 HttpsUrlConnection 将永远迭代(在 401 响应中)
远程连接Windows云服务器报错:出现身份验证错误,要求的函数不受支持