我想检查网址的状态代码而不使用IP地址,因为我有很多配置了相同IP的网站,并且只有主机名对他们不同。 HttpWebRequest
解析IP地址并使用它。NET:在不使用IP地址的情况下检查URL的响应状态代码
是否有替代方案?
我想检查网址的状态代码而不使用IP地址,因为我有很多配置了相同IP的网站,并且只有主机名对他们不同。 HttpWebRequest
解析IP地址并使用它。NET:在不使用IP地址的情况下检查URL的响应状态代码
是否有替代方案?
在对MSDN上市HttpWebRequest类的代码示例:
HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create("http://www.contoso.com/");
不需要IP。
编辑:
作为一个测试,我把它变成扔掉的应用程序,我有:
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://domain1.mylocalhost.com/");
HttpWebRequest myReq2 = (HttpWebRequest)WebRequest.Create("http://domain2.mylocalhost.com/");
WebResponse myReqResponse = myReq.GetResponse();
WebResponse myReq2Response = myReq2.GetResponse();
long x = myReqResponse.ContentLength;
long y = myReq2Response.ContentLength;
MessageBox.Show((x == y).ToString());
我DOMAIN1指向有效的网站,其功能。我有domain2指向一个网站,提供所有请求的错误500。两者都在同一个IP上。上面的代码会为myReqResponse生成一个17320的内容长度,而myReq2Response会抛出一个异常,导致错误500. IP地址不是必需的,幕后的解析不会影响其行为。
我已经建立了一个包含主机标题名称的网站。顾名思义,它是来自客户端的头文件,它导致它到达服务器上的正确站点。如果未提供标题,则服务器将不会路由到正确的站点。
您是否尝试将主机标头添加到请求的标头集合中?
Dim req As System.Net.HttpWebRequest = DirectCast(System.Net.WebRequest.Create("http://www.whatever.com/"), System.Net.HttpWebRequest)
req.Headers.Add("Host", "www.whatever.com")
您可以使用http://web-sniffer.net/,以确定您可能需要通过得到这个工作有什么其他头。
你想达到什么目的? – 2011-02-01 14:31:37
如果没有或解析IP地址,则无法通过TCP/IP进行通信。我有充分的理由相信HttpWebRequest类的行为正确,解析IP地址,并使用Host头来指示它尝试与之通信的“主机名”。那么,你遇到什么样的实际问题会导致你相信它被破坏了? – 2011-02-01 14:41:53