IntelliJ或Redocly是否缓存HTTP请求结果?如何禁用该缓存?
OpenAPI 3.0 + IntelliJ + Redocly 缓存问题排查与解决
问题总结
使用OpenAPI 3.0.0、IntelliJ 2023.2.4 Ultimate及Redocly插件开发Java代码时,修复API代码bug后,Redocly调用仍返回旧的404-not-found响应。经排查:
- 替换spec为petstore.yml时请求正常;
- 将petstore内容复制到原
myspec.yaml但保留原标题“My Title”,仍返回404; - 修改标题为唯一值后,返回正确的
501-not-implemented响应。
确认是针对localhost:8080的HTTP请求结果被错误缓存。
可能的缓存层及禁用方案
1. Redocly插件缓存
Redocly插件大概率以OpenAPI规范的title字段作为缓存标识,缓存过往请求的响应结果。当仅替换spec内容但保留原标题时,插件判定为同一规范,直接返回缓存的旧响应。
解决方法:
- 打开IntelliJ的
Settings > Plugins,找到Redocly插件,手动清除插件缓存(若有对应选项); - 重启IntelliJ IDE,强制插件重新加载规范文件并重置缓存;
- 调试期间可临时修改
title字段为唯一标识(如添加时间戳后缀),避免缓存命中,调试完成后再恢复原标题。
2. IntelliJ内置HTTP客户端缓存
Redocly插件可能依赖IntelliJ的内置HTTP客户端发送请求,而该工具会缓存localhost请求的响应内容。
解决方法:
- 打开IntelliJ的
HTTP Client工具窗口,点击右上角的Clear Cache按钮,清理所有HTTP请求缓存; - 进入
Settings > Build, Execution, Deployment > Build Tools,根据你的构建工具(Maven/Gradle)禁用构建缓存,然后重新执行项目构建; - 若为Spring应用,运行时添加JVM参数
-Dspring.cache.type=none,禁用应用层面的缓存。
3. Java应用本地缓存
若你的Java应用使用了缓存框架(如Spring Cache、Caffeine)或HTTP客户端(如RestTemplate、OkHttp)启用了缓存,也可能导致旧响应被保留。
解决方法:
- 检查应用配置文件,临时关闭所有缓存相关配置;
- 完全重启Java应用,清除内存中的缓存数据。
内容的提问来源于stack exchange,提问作者radumanolescu
相关产品推荐
相关产品推荐

