我尝试使用 访问我的服务器HttpsURLConnection
,得到响应代码 401 - 需要进行身份验证。尝试了以下方法:
Authenticator.setDefault (new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication ("myuser", "!mypassword".toCharArray());
}
});
得到响应代码 400 - 错误请求。
基于一些stackoverflow研究,我还尝试使用:
String authorizationString = "Basic " + Base64.encodeToString(("username" + ":" + "password").getBytes(), Base64.DEFAULT);
conn.setRequestProperty("Authorization", authorizationString);
同样的问题,代码 400。我也在这篇文章中使用 @Chrispix 方法信任所有主机: Trust Anchor not found for Android SSL Connection 不确定这是否会以某种方式干扰,但这是用于原型并且站点证书不是t 有效,所以我需要绕过检查。
连接是使用这些属性设置的,不确定是否有任何错误或缺失:
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.addRequestProperty("Content-Type", "application/json");
conn.setRequestMethod("POST");
conn.setDoInput(true);
谢谢!