Felipe188
Felipe188

Reputation: 11

HttpActionExecutedContext response content always is empty

When throws an exception in server side, the response content in OnException works well but in client side (SendAsync) it is empty..

public override void OnException(HttpActionExecutedContext context)
{
    var exception = context.Exception;
    if (exception == null) return;

    context.Response = new HttpResponseMessage(HttpStatusCode.InternalServerError);
    context.Response.Content = new StringContent(exception.Message);
}

protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
    HttpResponseMessage response = null;

    var responseBodyAsText = string.Empty;
    try
    {
        response = await base.SendAsync(request, cancellationToken);

        if (!response.IsSuccessStatusCode)
        {
            responseBodyAsText = await response.Content.ReadAsStringAsync();
        }

        response.EnsureSuccessStatusCode();
    }
    catch (HttpRequestException ex)
    {
        throw new BusinessException(responseBodyAsText);
    }

    return response;
}

Upvotes: 0

Views: 989

Answers (0)

Related Questions