C# HttpWebRequest将主机设置为垃圾,但仍获得OK响应

C# HttpWebRequest将主机设置为垃圾,但仍获得OK响应,c#,httpwebrequest,httpwebresponse,C#,Httpwebrequest,Httpwebresponse,我正在使用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

我正在使用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 */ }
}
为什么回复正常?垃圾主机不应该导致此操作失败吗?

获取或设置要在独立于请求URI的HTTP请求中使用的主机头值

使用主机属性显式指定自定义主机标头值也会影响缓存、cookie和身份验证区域。当应用程序为特定URI前缀提供凭据时,应用程序需要确保使用包含主机头值的URI,而不是URI中的目标服务器


因此,
.Host
对一般请求没有影响,您需要更改一些额外的行为。

您是否在一个代理的后面,该代理可能正在接收错误请求并显示错误页面,或者将您重定向到其他位置?(作为该评论的补充,响应中返回的是什么?将响应流转储到字符串并进行分析。)在代理后但没有错误页面。如果我输入IE,我会看到dns服务器失败。我还注意到各种ISP/dns服务器现在将无效URL重定向到其他地方(不返回404),肯定会转储页面并查看结果。也可能会导致错误,因为“.blah”是无效的域后缀