Microsoft System.Net.Browser.ClientHttpWebRequest似乎抛出了一个状态代码为NotFound的WebException,它对应于服务器在访问无服务器运行的无效IP地址时的404响应。正确的响应不是HTTP状态代码,并且绝对不在400范围内,因为客户端库从未有机会与有效的HTTP服务器通话。这对我的代码来说是有问题的,因为404在我的服务器端点返回时具有特殊含义。
有没有办法确定服务器实际返回的404(NotFound)响应何时被错误地用于描述System.Net.Browser.ClientHttpWebRequest类的常规连接失败?
请注意,在WP8上我会出现这种情况。
答案 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
}
}
}
}