如何防止Android返回对我的HTTP请求的缓存响应?

时间:2010-04-22 16:53:11

标签: android http httprequest no-cache

我正在编写一个客户端,它正在对xml数据进行重复的http请求,这些请求会随着时间而变化。看起来Android堆栈正在缓存我的页面请求并重复返回同一页面。我如何确保每次都获得一个新页面?

- 代码---

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpResponse response;
    response = client.execute(request);

InputStream in;
in = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));

谢谢, 格里

3 个答案:

答案 0 :(得分:27)

在网址末尾附加未使用的参数:

HttpGet request = new HttpGet(url + "?unused=" + someRandomString());

其中someRandomString()可能涉及当前时间。

这很粗糙,但无论外部因素如何,都可以使“正确”解决方案失败,例如错误配置或错误的代理,它几乎可以保证工作。

答案 1 :(得分:25)

添加HTTP标头:

Cache-Control: no-cache

看看是否有效。

答案 2 :(得分:3)

提示:获取随机字符串

HttpGet request = new HttpGet(url + "?unused=" + UUID.randomUUID().toString());