HttpResponseMessage是IsSuccessStatusCode C#

时间:2017-01-05 13:45:28

标签: c# asp.net asp.net-mvc asp.net-web-api httpresponsemessage

我有API,我试图使用PutAsync来更新某些字段。如果Put成功,我有消息将作为Response发送。但是如果在执行此操作时有任何异常,我将不得不将异常消息作为响应发送

HttpResponseMessage responseMessage = (await client_Name.PutAsync(c_URL, httpContent));

if (responseMessage.IsSuccessStatusCode)
{
    return Ok(serviceResponse);
}
else
{
    string errormessage = responseMessage.StatusCode.ToString();
}

我不知道如何处理HttpResponseMessage异常。我理解responseMessage.StatusCode给出状态但不确定如何将它们构造为响应,因为返回类型为Task<IHttpActionResult>

2 个答案:

答案 0 :(得分:2)

这取决于您要发回的邮件类型。很可能看起来只有500就可以了。然后你可以返回InternalServerError:

return InternalServerError(new Exception(...));

如果你想区分各种状态,如500,403等,你也可以这样做。你可以使用

return Request.CreateErrorResponse()

使用代码,消息等发回任何内容

如果您只想将服务器作为一种代理服务器并直接返回代码,那么您可以使用:

return new HttpResponseMessage(statusCode)

总而言之,这些是实现相同结果的各种选项,即返回带有某些消息的http状态代码。由你来决定你想要什么。

答案 1 :(得分:0)

尝试使用以下命令返回:

return Content(HttpStatusCode.BadRequest, "Any object");

在对象字段中,您可以发送错误。