これがどのように機能するかについて、私は非常に混乱しています。私はこのようなものを使ってみました:
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 でどのように行われるかを知りたいです。