从另一个应用程序中的HttpRequestException获取值

时间:2018-05-23 18:02:58

标签: c# model-view-controller httpresponsemessage

我从一个Web应用程序发送Exception并将其发送到另一个Web应用程序中。 在这种情况下,如何从HttpRequestException获取值?

发送自:

context.Response = new HttpResponseMessage(apiError.StatusCode)
{
    Content = new ObjectContent<ApiError>(apiError,
       new JsonMediaTypeFormatter(), @"application/json")
};
return context;

进入另一个:

catch (HttpRequestException e)
{
    this.logger.LogError(
      string.Format("Ошибка запроса {0}", requestUri.AbsoluteUri),
      LogCategoryRepository.ApiCashdesk,
      e);
    throw;
}

1 个答案:

答案 0 :(得分:0)

确定。你只需要创建一个类:

 public class ErrorDetails
 {
    public string Details { get; set; }
 }

并使用它:

try
            {
                using (var response = await client.SendAsync(request).ConfigureAwait(false))
                {
                    if(!response.IsSuccessStatusCode)
                    {
                        ***var error = await response.Content.ReadAsAsync<ErrorDetails>().ConfigureAwait(false);***
                        throw new HttpRequestException(error.Details);
                    }
                    response.EnsureSuccessStatusCode();
                    var result = await response.Content.ReadAsAsync<TResponse>().ConfigureAwait(false);
                    return result;
                }
            }