【发布时间】:2011-12-20 14:20:57
【问题描述】:
我目前正在从 URL 下载数据并拆分内容,只是为了在我的 apppot 上再次显示。来自 URL 的数据每天会更改数次。不过,我的 apppot 保持不变。 我认为我解决了这个问题,通过将 pragma 设置为“no-cache”并将标头的日期设置为 0。
这就是我的代码的样子和它的工作原理:
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setHeader("Pragma", "no-cache");
resp.setDateHeader("Expires", 0);
内容长度:15983 - 内容类型:文本/html - 日期:2011 年 12 月 20 日星期二 格林威治标准时间 14:06:53 - 到期时间:1970 年 1 月 1 日星期四 00:00:00 格林威治标准时间 - 编译指示:无缓存 服务器:谷歌前端
但我的 apppot 仍然没有像应有的那样从 URL 中获取刷新的数据。我在这里想念什么?由于没有任何变化,因为我已经更改了响应标头,所以我不知道还能做什么。
【问题讨论】:
-
一种选择是稍微更改请求 URL - 例如添加 '?'和一个随机数 - 以防止在 GAE 端缓存。
-
我怎样才能稍微更改请求 URL 并且仍然可以访问它?假设这是我的 URL: URL url = new URL("google.com"); BufferedReader reader.... 这个 URL 看起来像你的请求示例?
-
@dodinvents - 通常,附加一些未使用的参数并不会阻止它被提供 - 例如添加 '?n=123' 或者如果已经有参数追加 '&n=123'。所以
new URL("google.com?n=123"); -
@sje397 - 非常感谢!我要试试。
-
向我们展示您的其余代码。您正在通过设置缓存标头下载页面的服务器吗?此外,它不是“您的 apppot”,而是您的 App Engine 应用。 apppot 只是域。