我想檢查網址的狀態代碼而不使用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