我对这应该如何工作感到非常困惑。我试过使用这样的东西:
con = (HttpURLConnection) url2.openConnection();
con.setReadTimeout(10000);
con.setInstanceFollowRedirects(true);
con.setAllowUserInteraction(true);
con.setDoOutput(true);
con.setDoInput(true);
Authenticator.setDefault(new MyAuthenticator());
con.connect();
class MyAuthenticator extends Authenticator {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("myUser", "MyPassword".toCharArray());
}
}
我收到此方法返回的 401 错误,所以显然我错过了重点。根据这张图表,JRE 6 应该支持 NTLMv2。我的困惑在于它是在 Android 上运行的。在引发的异常的堆栈跟踪中,我看到一个被引用getOutputStream
的 Apache 实现。HttpURLConnection
根据我在研究中的发现,由于许可问题,Apache 无法包含 NTLMv2 协议。这就是为什么它不适用于android?
无论哪种方式,我都想知道这将如何在 Java 中完成,而不仅仅是 Android。