为什么System.Net.Browser.ClientHttpWebRequest在访问无效的服务器地址时返回404?

时间:2014-03-13 19:44:32

标签: .net windows-phone-8 system.net.webexception

Microsoft System.Net.Browser.ClientHttpWebRequest似乎抛出了一个状态代码为NotFound的WebException,它对应于服务器在访问无服务器运行的无效IP地址时的404响应。正确的响应不是HTTP状态代码,并且绝对不在400范围内,因为客户端库从未有机会与有效的HTTP服务器通话。这对我的代码来说是有问题的,因为404在我的服务器端点返回时具有特殊含义。

有没有办法确定服务器实际返回的404(NotFound)响应何时被错误地用于描述System.Net.Browser.ClientHttpWebRequest类的常规连接失败?

请注意,在WP8上我会出现这种情况。

1 个答案:

答案 0 :(得分:1)

我有同样的问题并且捕获System.Net.WebException并在catch语句中插入以下代码行使我能够获得服务器返回的实际响应:

catch(System.Net.WebException we)
{
   using (var streamResponse = we.Response.GetResponseStream())
   {
      using (var streamRead = new StreamReader(streamResponse))
      {
         string responseString = streamRead.ReadToEnd();

         // do something with responseString
      }
   }
}
}