You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 7 Web API中如何获取响应头x-rate-limit-remaining的值

在.NET Core 7 Web API中读取响应头x-rate-limit-remaining值

以下是两种常见场景下的实现方式:

1. 在控制器Action中读取

直接通过HttpContext.Response.Headers获取目标字段值,示例代码:

[HttpGet("api/data")]
public IActionResult GetData()
{
    // 尝试读取响应头中的x-rate-limit-remaining字段
    if (HttpContext.Response.Headers.TryGetValue("x-rate-limit-remaining", out var remainingValue))
    {
        // 根据业务需求转换类型,这里以转为int为例
        if (int.TryParse(remainingValue, out int remainingRequests))
        {
            // 此时remainingRequests变量已存储目标值,可用于后续逻辑
            // 示例:记录日志或返回给前端
        }
        // 如果不需要转换,直接使用remainingValue.ToString()即可
    }

    return Ok("请求处理完成");
}

2. 在自定义中间件中读取

如果需要全局拦截响应头信息,可通过中间件实现:

public class RateLimitHeaderMiddleware
{
    private readonly RequestDelegate _next;

    public RateLimitHeaderMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task InvokeAsync(HttpContext context)
    {
        // 先执行后续请求管道逻辑
        await _next(context);

        // 请求处理完成后读取响应头
        if (context.Response.Headers.TryGetValue("x-rate-limit-remaining", out var remainingValue))
        {
            if (int.TryParse(remainingValue, out int remaining))
            {
                // 使用读取到的剩余请求次数值
                // 示例:写入日志、监控统计等
            }
        }
    }
}

// 在Program.cs中注册中间件
builder.Services.AddTransient<RateLimitHeaderMiddleware>();
app.UseMiddleware<RateLimitHeaderMiddleware>();

注意事项

  • .NET Core的响应头集合不区分大小写,因此无需严格匹配x-rate-limit-remaining的大小写格式
  • 如果字段值不需要数值转换,直接调用remainingValue.ToString()即可获取原始字符串值

内容的提问来源于stack exchange,提问作者Sami In

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 09:44:58