我有一个ASP.Net 3.5 Web应用程序(C#),需要编写程序检查我们的另一个不是ASP.Net站点是否正在运行。目前,我有一个方法,其中包含以下代码,它检查状态码是否为200。我遇到的问题是,IIS7启动页面返回了状态码200,而我没有看到响应对象中有任何其他内容,可以让我验证我们期望显示的页面实际上是否显示。如果可能的话,我想避免获取响应并使用StreamReader来查找页面上的div以验证其有效性(类似于这里)。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlToCheck);
request.AllowAutoRedirect = true;
HttpWebResponse response;
try
{
response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
return true;
}
return false;
}
catch (Exception)
{
return false;
}
非常感谢您的帮助。
HttpWebRequest/HttpWebResponse
的语法有点奇怪 - 当你读取响应流时,它看起来像你在做一些额外的事情,但实际上并不是这样。其他一些替代方案(如WebClient
和更新的HttpClient
)更容易地读取响应。 - Joe Enos