HttpResponseCache работает с изображением, но не с Json
Я пытаюсь использовать HttpResponseCache для включения кэширования ответов (для веб-запросов) . В моем приложении я выполняю запрос UrlConnection с Loader, а затем отправляю результат InputStream в Activity, чтобы показать изображение или работать с JsonObject. В моем случае HttpResponseCache работает с URL-адресом изображения и может отображать изображение в автономном режиме, но с помощью URL-адреса Json результат входного потока работает только онлайн, он не может отображать данные в автономном режиме.
Класс погрузчика:
public InputStream loadInBackground() {
InputStream streamResult = null;
HttpURLConnection conn = null;
URL url = new URL(urlConnection);
conn = (HttpURLConnection) url.openConnection();
conn.setUseCaches(true);
final InputStream finalStream = conn.getInputStream();
streamResult = finalStream;
((Activity) context).runOnUiThread(new Runnable() {
@Override
public void run() {
ShowData(finalStream);
}
});
return streamResult;
}
Деятельность:
@Override
public void ShowData(InputStream output) {
if (output != null) {
if (rbtImage.isChecked()) {
bitmap = BitmapFactory.decodeStream(output);
} else if (rbtJson.isChecked()) {
try {
result = convertStreamToString(output);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
После выполнения Loader я могу показать изображение с этим растровым изображением по URL-адресу изображения. Но не может отображать данные с помощью Json's Url в автономном режиме.
Я пытаюсь использовать с:addRequestProperty("Cache-Control", "only-if-cached"); "max-stale", "max-age", "max-age=600, private, must-revalidate". Но ничего не работает.
Пожалуйста, помогите мне узнать, как использовать HttpResponseCache с Json?