urllib2.Request 不断从代理下载缓存文件

urllib2.Request Keeps Downloading Cached File From Proxy

我有一个 Python 2.7 脚本,它通过我们的公司代理从 public FTP 站点下载 ZIP 文件。代理设置在我的 Windows 服务器的系统变量中。

下载文件有效,但我发现即使文件已在 FTP 站点上开始更新,它仍在不断下载相同版本的文件。它似乎是从代理中获取缓存版本,而不是网络上的当前版本。

这是获取文件的代码:

    request = urllib2.Request(download_url)
    response = urllib2.urlopen(request).read()

如何强制脚本通过代理获取当前文件,而不是缓存文件?

您可以尝试像 url 那样附加 ?foo=bar 的内容。

解决方案是添加 Cache-Control header:

    request = urllib2.Request(download_url)
    request.add_header('Cache-Control', 'max-age=0')
    response = urllib2.urlopen(request).read()

假设代理服务器支持 header,即使 FTP 请求不支持 headers。