在不使用HttpWebRequest的情况下检查网站是否在线c#

时间:2012-07-27 09:26:47

标签: c# visual-studio-2010 console-application

除了使用HttpWebRequest命令之外,是否可以确定网站是在线还是离线?

建议我使用 Ping方法,因为我想查看网站的可用性。

3 个答案:

答案 0 :(得分:1)

您应该向标头(域)发送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方法会给你一个想法。

答案 1 :(得分:0)

  

是否可以确定网站是在线还是离线其他   比使用HttpWebRequest命令?

不,没有别的办法。您需要向站点发送HTTP请求并检查返回的状态代码。在.NET中,这通常使用WebClient类完成,但如果您愿意,也可以使用WebRequest。为避免浪费带宽,您可以使用HEAD动词。这样您就可以指示Web服务器不发送响应正文,只是一个您可以检查为200的状态代码。

答案 2 :(得分:0)

一个选项是加载图片,javascript img包含被解雇的事件

onabort     Loading of an image is interrupted 
onerror     An error occurs when loading an image
onload  An image is finished loading

了解更多信息 http://www.w3schools.com/jsref/dom_obj_image.asp