除了使用 HttpWebRequest 命令之外,是否可以确定网站是在线还是离线?
请不要建议我使用Ping 方法,因为我想检查网站的可用性。
除了使用 HttpWebRequest 命令之外,是否可以确定网站是在线还是离线?
请不要建议我使用Ping 方法,因为我想检查网站的可用性。
您应该向您的标头(域)发送一个 ajax 调用。在 ? 后添加随机数 (即使您的页面被缓存,这是为了测试)。这就是它在javascript中的样子:
function hasInternets() {
console.log("hasInternets: " + window.location.href.split("?")[0] + "?" + Math.random());
var s = $.ajax({
type: "HEAD",
url: window.location.href.split("?")[0] + "?" + Math.random(),
async: false
}).status;
console.log("s: " +s);
//thx http://www.louisremi.com/2011/04/22/navigator-online-alternative-serverreachable/
return s >= 200 && s < 300 || s === 304; }
如果你正在寻找这方面的 C# 代码,至少这个 javascript 方法会给你一个想法。
除了使用 HttpWebRequest 命令之外,是否可以确定网站是在线还是离线?
不,没有别的办法。您需要向站点发送 HTTP 请求并检查返回的状态码。在 .NET 中,这通常通过WebClient类完成,但WebRequest如果您愿意,也可以使用。为了避免浪费带宽,您可以使用HEAD动词。这样,您就可以指示 Web 服务器不发送响应正文,而只是发送一个状态码,您可以检查它是否为 200。
一个选项是加载图像,以及带有被触发事件的 javascript img
onabort Loading of an image is interrupted
onerror An error occurs when loading an image
onload An image is finished loading