5.27设置来源地址(防盗链)

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

当访问某些第三方服务器时,服务器可能会验证请求头中的 Referer 来源地址。例如在下载图片时,可能因触发防盗链机制导致获取的图片不符合预期。此时,可通过设置 Referer 请求头,模拟来源页面以绕过防盗链检测。

HTTP 声明式请求通过 RefererAttribute 特性来设置请求来源地址。相应的 HTTP 声明式提取器实现为 RefererDeclarativeExtractor 类型,该类型负责解析 RefererAttribute 特性并构建 HttpRequestBuilder 实例所需的请求来源地址配置。

cs
// 在接口定义上应用,影响所有方法[Referer("https://furion.net")]public interface IHttpService : IHttpDeclarative{    [Get("https://furion.net/logo.png")]    Task<string> GetStringAsync();    // 在方法上应用    [Referer("https://baiqian.com")]    [Get("https://furion.net/logo2.png")]    Task<string> GetStringAsync();}

启用后,发送 HTTP 远程请求时会自动设置请求来源地址。

为简化配置,框架提供了内置模板字符串 "{BASE_ADDRESS}",可自动提取请求地址的基地址作为 Referer

cs
[Referer("{BASE_ADDRESS}")] // 发送时自动替换 {BASE_ADDRESS} 为 https://furion.net/public interface IHttpService : IHttpDeclarative{    [Get("https://furion.net/logo.png")]    Task<string> GetStringAsync();}

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

  • 构造函数

    • new(referer):作用于方法或接口,设置请求来源地址。
  • 属性

    • Referer:请求来源地址(string 类型)。