Java - 如何下载文件的非缓存版本?

时间:2013-07-21 05:03:46

标签: java

我已经创建了一个程序,它从我的站点读取一个文本文件,该文件提供了md5校验和以及所需jar文件的最新链接。然后,程序将使用本地文件的格式评估给定的md5校验和,并在必要时下载它。但是有一个问题,如果有快速更新,程序将一遍又一遍地下载,因为它获得了文件的缓存副本而不是实际的实时版本。有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您可以将某些缓存控制标头添加到HTTP请求和/或响应中,以防止使用缓存副本。也可以抑制整个站点的缓存,尽管这通常是不明智的。有关要添加的内容的详细信息,请参阅the spec

具体来说,您可以添加此标题:

cache-control: no-cache

到请求标头。请参阅此处了解更多cache-control语法。

请注意,某些HTTP缓存并不总是尊重这些标头,因此您可能需要采取其他步骤,例如向URI添加所谓的“缓存清除”额外数据。例如,请参阅this thread这样的技术。

如果您可以使用POST而不是GET,那么应该消除大多数缓存问题,因为POST响应不应该被缓存。