HTTP 基本認証を使用して、Web サーバーに HttpURLConnection ベースの要求を行っています。コードは Android バージョン 2.x、3.x.、4.0.x でうまく動作します。現在、Jelly Bean と v4.1.x では認証が失敗し、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
Android ドキュメントのように HttpURLConnection に使用する認証コード:
private void doAuthorize() {
Authenticator.setDefault(new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(USER, PASSWORD.toCharArray());
}
});
}
さらに調査してトラブルシューティングを行った結果、このコードは 4.1 Jelly Bean では呼び出されていないことがわかりました。
Android Jelly Bean 4.1 での基本認証の回避策または適切な方法は何ですか?
誰かがこの関連トピックの Android ソース コードで異なることを発見しました。私たちが抱えている問題はその違いに関連していると思います: