Pergunta

Estou muito confuso sobre como isso deve funcionar. Eu tentei usar algo assim:

    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());
      }
    }

Estou recebendo um erro 401 retornado por esse método, então, obviamente, estou perdendo o ponto. De acordo com isso gráfico O NTLMV2 deve ser suportado no JRE 6. Minha confusão está no fato de que isso está sendo executado no Android. No rastreamento da pilha da exceção jogada por getOutputStream Eu vejo uma implementação do Apache de HttpURLConnection sendo referenciado.

Pelo que descobri em minha pesquisa, o Apache não pode incluir os protocolos NTLMV2 devido a problemas de licenciamento. É por isso que não funciona no Android?

De qualquer forma, eu gostaria de saber como isso seria feito em Java, não apenas no Android.

Foi útil?

Solução

Não é implementado. Confira este problema: http://code.google.com/p/android/issues/detail?id=4962. Considere também o fato de que o Android não é JRE 6, é uma versão modificada do Java padrão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top