2012-03-29 101 views
3

我使用urllib3连续多次查询同一个url。我已经成型的要求和我得到的标题:如何防止python urllib3缓存响应

的Cache-Control:无转换,最大年龄= 120

在第一次我得到了网页的缓存版本,而不是后请求请求再次运行。我无法控制从服务器返回的头文件,我该如何防止缓存?

我Debian的挤压,这正在运行的Python 2.6.6

pool = urllib3.HTTPConnectionPool('itunes.apple.com') 
request = pool.request('GET', '/webObjects/MZStore.woa/wa/viewTop? 
         selected_tab_index=0&startIndex=0&genreId=36', 
         headers = {'Host': 'itunes.apple.com', 
         'Accept-Encoding': 'gzip, deflate', 'X-Apple-Tz': -18000, 
         'X-Apple-Store-Front': '143441-1,2') 
+0

01一月请用参数显示对urllib3的调用。 – 2012-03-29 21:10:53

回答

3

urllib3已没有本地缓存​​内置的。你确定它不是服务器缓存的结果回应?

+0

这是非常可能的。除了等待之外,有没有办法避免从服务器获取缓存的响应? – 2012-03-29 21:11:27

+0

这真的取决于服务器和它实现的逻辑。正如James在下面提到的,您可以尝试发送缓存控制:no-cache头。您也可以尝试将一些查询参数附加到URL,如时间戳。 – shazow 2012-03-30 17:24:00

2

尝试添加以下标题:

缓存控制:无缓存

杂注:无缓存

到期日:星期四,1970 00:00:00 GMT

+0

我来到这里是因为当我运行一个脚本来检查我的服务器正在运行时,我得到了一个缓存的结果。添加这些头文件对我有效;谢谢!注意我正在使用Python请求 – pa1983 2017-01-19 12:48:22