如何使用Python请求清除缓存?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Python请求清除缓存?相关的知识,希望对你有一定的参考价值。
Python的requests
包是否默认缓存数据?
例如,
import requests
resp = requests.get('https://some website')
响应是否会被缓存?如果是,我该如何清除它?
答案
Python请求没有任何缓存功能。
但是,如果你需要它们,你可以看看requests-cache,虽然我从未使用它。
截至2018年,其最后一次发布是在2016年,因此似乎没有得到维护。
另一答案
添加'Cache-Control: no-cache'
标头:
self.request = requests.get('http://google.com',
headers={'Cache-Control': 'no-cache'})
另一答案
默认情况下,请求不执行缓存。您可以使用CacheControl之类的东西轻松插入它。
另一答案
迟到的答案,但你没有清除缓存,python requests因为它没有缓存请求,你应该使用头Cache-Control
和Pragma
代替,即:
import requests
headers = {
...
"Cache-Control": "no-cache",
"Pragma": "no-cache"
}
x = requests.get("site.tld", headers=headers)
...
Cache-Control
Cache-Control general-header字段用于为请求和响应中的缓存机制指定指令。缓存指令是单向的,这意味着请求中的给定指令并不意味着在响应中给出相同的指令。Pragma
特定于实现的标头,可能在请求 - 响应链的任何位置具有各种影响。用于向后兼容尚未存在Cache-Control标头的HTTP / 1.0高速缓存。
指示
no-cache
强制缓存在发布缓存副本之前将请求提交到源服务器以进行验证。
关于Pragma
的注意事项:
没有为HTTP响应指定Pragma,因此它不是一般HTTP / 1.1 Cache-Control标头的可靠替代品,尽管它的行为与Cache-Control相同:no-cache,如果省略了Cache-Control标头字段一个要求。仅将Pragma用于向后兼容HTTP / 1.0客户端。
以上是关于如何使用Python请求清除缓存?的主要内容,如果未能解决你的问题,请参考以下文章
使用 MSW 和 Jest 时如何在请求之间的测试中清除 RTK 查询缓存?