К сожалению, я не смог заставить работать решение предыдущего ответа, потому что this.Response
, кажется, не существует, но я нашел решение, которое работает.
Сначала в Startup.ConfigureServices(...)
добавьте следующее:
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
Затем добавьте элемент HttpContext в контроллер службы и введите HttpContextAccessor
в конструктор контроллера службы следующим образом:
private readonly HttpContext Context;
public MyServiceController(IHttpContextAccessor contextAccessor, ...)
{
Context = contextAccessor.HttpContext;
}
Наконец, используйте новый элемент Context
изменить заголовок.Модифицированная версия метода в оригинальном посте:
[HttpPost("MyEndpoint")]
public string MyEndpoint([FromBody][Required] RequestBody requestBody)
{
string responseBody = DoStuff(requestBody);
// Set response header
Context.Response.Header.Add("HeaderKey", "HeaderValue");
return responseBody;
}