5.18禁用 HTTP 缓存

创建于 2026 年 8 月 17 日约 1 分钟读完

在发送 HTTP GET 请求时,服务器可能会缓存该请求的结果以提高性能。为了取消其缓存行为,可以添加 DisableCacheAttribute 特性。

HTTP 声明式请求通过 DisableCacheAttribute 特性来禁用 HTTP 缓存。相应的 HTTP 声明式提取器实现为 DisableCacheDeclarativeExtractor 类型,该类型负责解析 DisableCacheAttribute 特性并构建 HttpRequestBuilder 实例所需的禁用 HTTP 缓存配置。

cs
// 在接口定义上应用,影响所有方法[DisableCache]public interface IHttpService : IHttpDeclarative{    // 在方法上应用    [DisableCache]    [Get("https://furion.net/")]    Task<string> GetStringAsync();    [DisableCache(false)]   // 启用缓存(默认)    [Get("https://furion.net/")]    Task<string> GetStringAsync();}

在添加该特性之后,HTTP 请求将在发送前自动附带以下请求标头,以确保缓存控制:

bash
Cache-Control: must-revalidate, no-cache, no-storePragma: no-cacheIf-None-Match: ""

DisableCacheAttribute 包含以下构造函数和属性:

  • 构造函数

    • new():作用于方法或接口,禁用 HTTP 缓存。
    • new(disabled):作用于方法或接口,设置是否禁用 HTTP 缓存。
  • 属性

    • Disabled:是否禁用(bool 类型),默认值为 true(禁用)。