在ASP.NET Core Web API控制器中,可以通过注入HttpContextAccessor
来访问每个请求的HTTP标头。下面是一个示例代码:
Microsoft.AspNetCore.Http
和Microsoft.AspNetCore.Mvc
命名空间添加到控制器文件的顶部。using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
HttpContextAccessor
。private readonly IHttpContextAccessor _httpContextAccessor;
public MyController(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
HttpContext
的Request
属性来访问HTTP标头。[HttpGet]
public IActionResult GetHeaderValue(string headerName)
{
var headerValue = _httpContextAccessor.HttpContext.Request.Headers[headerName].ToString();
return Ok(headerValue);
}
在上面的示例中,GetHeaderValue
方法接受一个headerName
参数,用于指定要提取的HTTP标头名称。然后,通过_httpContextAccessor.HttpContext.Request.Headers
来访问请求的HTTP标头,并将其作为字符串返回。
请注意,为了使上述代码生效,还需要在Startup.cs文件的ConfigureServices方法中注册HttpContextAccessor
:
services.AddHttpContextAccessor();
这样,你就可以在ASP.NET Core Web API控制器中提取每个请求的HTTP标头了。