我正在开发一个GAE应用程序,它可以获取一个网页并搜索一个链接
这个页面每天早上都会更新,因此每天早上每15分钟执行一次cron作业,持续几个小时,以获取当天的页面。
问题在于:如果在第一次执行cron作业时,应用程序找到旧页面(昨天的页面),它会继续获取该页面,尽管同一URL上有新页面。
似乎在某处使用了缓存,但我无法禁用它。
应用程序用于下载页面的代码只是Java I / O:
InputStream input = null;
ByteArrayOutputStream output = null;
HttpURLConnection conn = null;
URL url = new URL("http://www.page.url.net");
try {
conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(0);
conn.setUseCaches(false);
int httpResponseCode = conn.getResponseCode();
if (httpResponseCode == HttpURLConnection.HTTP_OK) {
input = conn.getInputStream();
output = writeByteArrayOutputStreamFromInputStream(input);
} else {
throw new IOException("response code " + httpResponseCode);
}
} finally {
if (input != null) {
output.close();
conn.disconnect();
}
}
怎么了?
答案 0 :(得分:0)
为了避免缓存,我建议使用这个简单的技巧:在查询字符串的末尾添加一个“假”查询参数,例如,如果你要提取的页面是
添加名为dummy =的参数,以便url变为:
http://www.page.url.net?dummy=2013-05-25
确保远程服务器实际上没有解释“虚拟”参数。
希望这有帮助。