0

在服务器端抛出异常时,OnException 中的响应内容运行良好,但在客户端(SendAsync)它是空的..

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;
}
4

0 回答 0