我有一个Python 2.7脚本,它通过我们的公司代理从公共FTP站点下载ZIP文件。代理是在我的Windows服务器的系统变量中设置的。
下载文件有效,除了我发现即使文件在FTP站点上开始更新,它也会不断下载相同版本的文件。它似乎正在从代理中获取缓存版本,而不是网络上的当前版本。
下面是获取文件的代码:
request = urllib2.Request(download_url)
response = urllib2.urlopen(request).read()
如何强制脚本通过代理获取当前文件,而不是缓存的文件?
你可以尝试类似附加 ?foo=bar 的 url。
解决方案是添加一个 Cache-Control 标头:
request = urllib2.Request(download_url)
request.add_header('Cache-Control', 'max-age=0')
response = urllib2.urlopen(request).read()
假设代理服务器支持标头,即使 FTP 请求不支持标头。