我想检查网址的状态代码,而不使用IP地址,因为我有很多网站配置了相同的IP,只有主机名不同。
HttpWebRequest
解析IP地址并使用它。
有替代方案吗?
答案 0 :(得分:2)
在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地址不是必需的,幕后的分辨率不会影响其行为。
答案 1 :(得分:0)
之前我已经建立了一个带有主机标题名称的网站。顾名思义,它是标题(来自客户端)导致它转到服务器上的正确站点。如果未提供标头,则服务器将不会路由到正确的站点。
您是否尝试将主机标头添加到请求的标头集合中?
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/来确定您可能需要传递哪些其他标头才能使其正常工作。