Problem z podstawowym uwierzytelnieniem HTTP na Androidzie Jelly Bean 4.1 przy użyciu HttpURLConnection

Wykonujemy żądanie oparte na HttpURLConnection na serwerze sieci Web przy użyciu podstawowego uwierzytelniania HTTP. Kod działa świetnie na Androidzie w wersji 2.x, 3.x., 4.0.x Teraz uwierzytelnianie Jelly Bean i v4.1.x kończy się niepowodzeniem z następującymi komunikatami w LogCat:

01-27 10:54:18.886: ...::doReadRawData(731): An exception occured while reading data from remote host. httpURLConn.responseCode = 401 / httpURLConn.responseMessage = UNAUTHORIZED
01-27 10:54:18.886: ...::doReadRawData(731): java.io.IOException: No authentication challenges found

Kod uwierzytelniania, którego używamy dla HttpURLConnection jak w dokumentacji Androida:

private void doAuthorize() {
        Authenticator.setDefault(new Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(USER, PASSWORD.toCharArray());
            }
        });
    }

Po dalszych badaniach i rozwiązaniu problemów dowiedzieliśmy się, że ten kod nie jest wywoływany w 4.1 Jelly Bean!

Jakie są obejścia lub właściwe sposoby podstawowego uwierzytelniania w systemie Android Jelly Bean 4.1?

Ktoś znalazł inny kod źródłowy Androida w tym pokrewnym temacie, myślę, że problem, który mamy, jest związany z tą różnicą:HttpURLConnection działało dobrze w systemie Android 2.x, ale NIE w wersji 4.1: nie znaleziono wyzwań związanych z uwierzytelnianiem

questionAnswers(2)

yourAnswerToTheQuestion