HttpWebRequest设置主机到垃圾但仍然得到OK响应

时间:2011-07-18 21:39:26

标签: c# httpwebrequest httpwebresponse

我正在使用HttpWebRequest并传入一个IP地址。然后我将主机设置为垃圾值。当我打电话给GetResponse()时我得到了一个好的,即使我认为这会失败,因为主机是垃圾。

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 */ }
}

为什么回复可以回复?垃圾主机不应该导致它失败吗?

1 个答案:

答案 0 :(得分:4)

HttpWebRequest.Host Property

  

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

     

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

因此.Host对一般请求没有影响,您可以更改其他一些行为。