我需要檢查給定主機是否正在回覆HTTP Web請求。 所以,我需要做的只是HttpWebRequest.Create(someURI)並檢查響應,對吧?HttpWebRequest.Create和防火牆
HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create(targetUri);
TimeSpan timeOut = TimeSpan.FromSeconds(timeOutInSeconds);
webRequest.Timeout = (int)timeOut.TotalMilliseconds;
webRequest.Proxy = proxy;
webRequest.AllowAutoRedirect = false; // get extra information with this turned off, but doesn't affect the problem
response = webRequest.GetResponse() as HttpWebResponse;
嗯,在拿出的問題是,如果someURI是由我們的防火牆阻塞(如「gibber.com」被阻止),然後我得到一個有效的HttpWebResponse,不投,和ResponseURI屬性設置爲阻止的URI(「gibber.com」),即使它實際上是我們的服務器響應。
在HTTP標頭中會有一個定位鍵,它的值是本地服務器的IP地址。但是我不想解析文本來確定請求是否實際被反彈。什麼是正確的方法來做到這一點?
感謝
爲什麼你不想解析文本? – 2012-08-17 16:34:31
解析文本很簡單,但看起來不太健壯。它只是噴出n個標題,其中一個恰好包含服務器的IP。 如果我知道總是會有一個被封鎖的URL的位置標題,並且它始終是服務器/網關的地址,那麼它將會很好。但我不知道。 – Mijin 2012-08-17 19:39:58