سؤال

أنا في حيرة من أمري حول كيفية عمل ذلك. لقد حاولت استخدام شيء مثل هذا:

    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.

هل كانت مفيدة؟

المحلول

لم يتم تنفيذه. تحقق من هذه المشكلة: http://code.google.com/p/android/issues/detail؟id=4962. ضع في اعتبارك أيضًا حقيقة أن Android ليس JRE 6 ، وهو إصدار معدّل من Java القياسي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top