Как мы можем вернуть заголовок местоположения с принятым ответом StatusCodeResult 202? - PullRequest
0 голосов
/ 16 мая 2018

Мы используем StatusCodeResult для 202 принятых ответов от API, но также должны возвращать заголовок местоположения с этим. Как мы можем достичь этого? Вот наш текущий код:

response = new StatusCodeResult(HttpStatusCode.Accepted,this);

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Вы можете создать собственную реализацию IHttpActionResult, в которой вы устанавливаете заголовок:

public class StatusCodeWithLocationResult : IHttpActionResult
{
    private readonly StatusCodeResult _result;
    private readonly Uri _location;

    public StatusCodeWithLocationResult(StatusCodeResult result, Uri location)
    {
        _result = result;
        _location = location;
    }

    public async Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
    {
        var response = await _result.ExecuteAsync(cancellationToken).ConfigureAwait(false);
        response.Headers.Location = _location;
        return response;
    }
}

, а затем используете его:

return new StatusCodeWithLocationResult(StatusCode(HttpStatusCode.Accepted), myUri);
0 голосов
/ 16 мая 2018

Попробуйте следующее:

var response = Request.CreateResponse(HttpStatusCode.Accepted);
response.Headers.Location = Request.RequestUri;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...