【发布时间】:2011-07-18 21:39:25
【问题描述】:
我正在使用 HttpWebRequest 并传入一个 IP 地址。然后我将主机设置为垃圾值。当我打电话给GetResponse() 时,我得到了一个 OK,尽管我预计这会失败,因为主机是垃圾。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(String.Format("http://10.10.10.10/Default.aspx"));
request.Host = "blah.blah.blah";
request.ContentType = "text/xml";
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
if (response.StatusCode == HttpStatusCode.OK) { /*always enters here */ }
}
为什么回复正常?垃圾主机不应该导致这个失败吗?
【问题讨论】:
-
您是否使用了代理,该代理可能会吃掉错误请求并显示错误页面,或者将您重定向到其他地方?
-
(作为该评论的附录,响应中返回的内容是什么?将响应流转储为字符串并进行分析。)
-
在代理后面但没有错误页面。如果我在 IE 中输入blah.blah.blah,我会得到 dns_server_failure。
-
我还注意到各种 ISP/DNS 服务器现在将无效 URL 重定向到其他地方(不返回 404),一定要转储页面并查看结果。
-
错误也可能是因为“.blah”是一个无效的域后缀
标签: c# httpwebrequest httpwebresponse