我需要检查给定主机是否正在回复HTTP Web请求。 所以,我需要做的就是HttpWebRequest.Create(someURI)并检查响应,对吗?
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标头中,将有一个Location键,其值为本地服务器的IP。但是,如果请求实际被退回,我不想解析文本。这样做的正确方法是什么?
由于
答案 0 :(得分:0)
检查response.ResponseUri是否对应于给定的主机或防火墙。