HttpResponseCache使用Image而不是Json

时间:2015-04-07 08:47:25

标签: java android json caching httpresponsecache

我尝试使用HttpResponseCache来启用响应缓存(用于Web请求)。在我的应用程序中,我通过UrlConnection和Loader执行请求,然后我将InputStream结果发送到Activity以显示图像或使用JsonObject。在我的情况下,HttpResponseCache使用图像的网址,并且可以在离线时显示图像但是使用Json的Url,输入流结果只能在线工作,在离线时无法显示数据。


装载机类:

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执行后,我可以通过Image的Url显示带有该位图的Image。但离线时无法使用Json的Url显示数据。

我尝试使用:addRequestProperty(" Cache-Control"," only-if-cached"); " max-stale"," max-age"," max-age = 600,private,must-revalidate"。但没什么用。

请帮助我了解如何在Json中使用HttpResponseCache?

0 个答案:

没有答案