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 エラーが返されるので、明らかに要点がわかりません。このチャートによると、NTLMv2 は JRE 6 でサポートされるはずです。私の混乱は、これが Android で実行されているという事実にあります。によってスローされた例外のスタック トレースでgetOutputStream、Apache の実装HttpURLConnectionが参照されていることがわかります。

私の調査でわかったことによると、ライセンスの問題により、Apache には NTLMv2 プロトコルを含めることができません。androidで動かないのはこれが原因?

いずれにせよ、これが Android だけでなく Java でどのように行われるかを知りたいです。

4

1 に答える 1

1

実装されていません。この問題を確認してください: http://code.google.com/p/android/issues/detail?id=4962 . また、Android は JRE 6 ではなく、標準 Java の修正版であるという事実も考慮してください。

于 2010-10-06T09:23:33.393 に答える