如何在Python中基于requests-cache库缓存POST请求
如何用requests-cache缓存POST请求
requests-cache 1.3.2默认仅缓存GET和HEAD请求,POST请求不会自动缓存,你可以通过以下方式开启POST请求的缓存:
方法1:初始化会话时指定允许缓存的请求方法
在创建CachedSession实例时,通过allowable_methods参数包含POST,即可让会话缓存POST请求:
from requests_cache import CachedSession # 配置会话允许缓存GET和POST请求 session = CachedSession('.cache', allowable_methods=['GET', 'POST']) # 发送POST请求,该请求会被缓存 session.post('https://httpbin.org/post')
关键说明
- POST请求的缓存键由URL + 请求体内容共同生成,只有当URL和请求体完全相同时,才会命中缓存。
- 注意:POST请求通常用于提交数据、修改资源,缓存这类请求可能不符合HTTP语义,仅在确认请求是幂等(重复执行不会产生副作用)的场景下使用。
执行上述代码后,再用你之前的验证命令:
sqlite3 .cache.sqlite 'select * from responses;' | wc --lines
就能看到缓存中新增了POST请求的响应记录。
内容的提问来源于stack exchange,提问作者Jeyekomon
相关产品推荐
相关产品推荐

