1

我对这应该如何工作感到非常困惑。我试过使用这样的东西:

    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。

4

1 回答 1

1

它没有被实施。看看这个问题:http ://code.google.com/p/android/issues/detail?id=4962 。还要考虑 Android 不是 JRE 6 的事实,它是标准 Java 的修改版本。

于 2010-10-06T09:23:33.393 回答