Я пытаюсь заставить HttpResponseCache кэшировать ответы на запросы, содержащие заголовок «Авторизация». Я включаю этот заголовок, потому что API, который я вызываю, использует базовую аутентификацию.Android HttpResponseCache и заголовок запроса «Авторизация»
HttpUrlConnection connection = initialiseConnection();
String usernameAndPasswordString = Base64.encodeToString(String.format("%s:%s", username, password).getBytes(), Base64.NO_WRAP);
connection.setRequestProperty("Authorization", String.format("basic %s", usernameAndPasswordString));`
Чтобы проверить это, я делаю запрос с включенным WiFi. Затем я отключу Wi-Fi и данные и снова сделаю запрос. Затем я получаю исключение FileNotFoundException при попытке прочитать тело ответа.
InputStream inputStream = new BufferedInputStream(connection.getInputStream());
Если бы я сделать то же самое, но без заголовка «Authorization» (в приложение на другом сервере, который не использует базовую авторизацию), мой код может прочитать ответ из кэша ,
Я знаю, что кеш HTTP не предназначен для кэширования ответа, который был результатом запроса, включая заголовок «Авторизация», но означает ли это, что я просто не могу кэшировать ответы с этого сервера без письменного разрешения мой собственный кеш? Есть ли какой-либо известный способ обойти это или переопределить это поведение в HttpUrlConnection/HttpResponseCache?
Заранее благодарен!