我需要构建一个.NET函数来测试特定网站是否在线。做这个的最好方式是什么?我打算简单地ping网站,但我想知道是否有更准确的方法。
谢谢!
答案 0 :(得分:16)
我总是使用它来检查网站是否正常工作:
public bool IsWebsiteOnline(string url)
{
try
{
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
myReq.Timeout = 10000;
using (HttpWebResponse response = (HttpWebResponse)myReq.GetResponse())
{
return response.StatusCode == HttpStatusCode.OK;
}
}
catch
{
return false;
}
}
答案 1 :(得分:1)
永远不要认为ping网站的能力会为您提供有关其状态的任何信息,除了打开该框并碰巧响应ping。
答案 2 :(得分:0)
ping检查服务器是否响应。但是,Web应用程序部分可能已关闭,数据库可能已完成,等等。
从URL写入HTTP数据请求,并且:
1)检查状态码响应是否正常
2)检查是否有内容(非空页)
* 3)如果你真的想要聪明,根据要求,验证返回的数据 - 即比较一部分特定字符串。
*但至少我建议1和2。
答案 3 :(得分:0)
您可以使用Watin执行小任务,从而判断网站是否正常运行。
Watin允许您测试功能。
(某些代码从他们的网站上被盗)
public void SearchForWatiNOnGoogle()
{
using (IE ie = new IE("http://www.google.com"))
{
ie.TextField(Find.ByName("q")).TypeText("WatiN");
ie.Button(Find.ByName("btnG")).Click();
Assert.IsTrue(ie.ContainsText("WatiN"));
}
}