`HttpClient`错误消息

时间:2015-09-22 15:07:54

标签: c# asp.net-mvc

我使用HttpClient来获取服务器API的回复。

API类似于:

  

/ API /图像/ {0}

其中{0}是图像的名称 图像名称只有三个可能的值,例如{"green", "red", "blue"}

我不知道目前哪些图片存在,所以我对所有三张图片进行API调用:

  
      
  • / api / images / green
  •   
  • / api / images / red
  •   
  • / API /图像/蓝
  •   

HttpClient可能会返回许多错误消息,但我想针对以下内容提出一个特殊情况:

  

响应状态代码不表示成功:404(未找到)。

问题:是否可以使HttpClient返回(在这种情况下)只有404的错误消息?

2 个答案:

答案 0 :(得分:4)

HttpResponseMessage类包含StatusCode属性,所以为什么你不想这样处理它:

using (HttpClient client = new HttpClient())
{
    HttpResponseMessage response = await client.GetAsync(url);
    switch (response.StatusCode)
    {
           case System.Net.HttpStatusCode.NotFound: { /* return here anything you want on 404 */ } break;
           default: { /* default behavior */ } break;
    }
}

答案 1 :(得分:0)

响应对象将具有可以按如下方式访问的StatusCode属性:(注意StatusCode.OK = 200)

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
                responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
                if (response.StatusCode != HttpStatusCode.OK)
...