如何将自定义标头添加到ASP.NET Core Web API响应

问题描述:

我正在将我的API从Web API 2移植到ASP.NET Core Web API.我曾经能够通过以下方式添加自定义标头:

I am porting my API from Web API 2 to ASP.NET Core Web API. I used to be able to add a custom header in the following manner:

  HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
  response.Headers.Add("X-Total-Count", count.ToString());
  return ResponseMessage(response);

如何在ASP.NET Core Web API中添加自定义标头?

How does one add a custom header in ASP.NET Core Web API?

您可以从传入的Http Request中劫持HttpContext并将您自己的自定义标头添加到Response对象,然后再调用return.

You can just hi-jack the HttpContext from the incoming Http Request and add your own custom headers to the Response object before calling return.

如果要保留自定义标头并将其添加到多个控制器的所有API请求中,则应考虑制作一个Middleware组件为您执行此操作,然后将其添加到中的Http Request Pipeline中Startup.cs

If you want your custom header to persist and be added in all API requests across multiple controllers, you should then consider making a Middleware component that does this for you and then add it in the Http Request Pipeline in Startup.cs

public IActionResult SendResponse()
{
    Response.Headers.Add("X-Total-Count", "20");

    return Ok();
}