Как установить заголовки ответа в сервисе .NET core 2.0 - PullRequest
0 голосов
/ 31 мая 2018

У меня есть служба dotnet core 2, и я хотел бы добавить заголовок ответа перед отправкой ответа, но я не могу понять, как это сделать.Значение заголовка будет зависеть от запроса, оно не будет одинаковым для всех запросов.Пример конечной точки, где я хотел бы добавить это ниже:

[HttpPost("MyEndpoint")]
public string MyEndpoint([FromBody][Required] RequestBody requestBody)
{
    string responseBody = DoStuff(requestBody);

    // How to set response header?

    return responseBody;
}

ps извините за глупое имя пользователя, я спешил создать учетную запись, но теперь я не могу изменить его на 30 (еще 25) дней.

Ответы [ 3 ]

0 голосов
/ 05 июня 2018

К сожалению, я не смог заставить работать решение предыдущего ответа, потому что 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;
}
0 голосов
/ 04 декабря 2018

в ядре .net это очень просто сделать:

Response.Headers.Add("testkey", "testvalue");
0 голосов
/ 01 июня 2018

Попробуйте это:

[HttpPost("MyEndpoint")]
public string MyEndpoint([FromBody][Required] RequestBody requestBody)
{
    string responseBody = DoStuff(requestBody);

    // How to set response header?
    this.Response.Headers.Add("MyHeader", "MyHeaderValue");

    return responseBody;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...