c# -测试网页-等待超时

本文关键字:超时 等待 测试 网页 | 更新日期: 2023-09-27 18:01:45

要测试我们的计算机是否连接到防火墙,我们检查该防火墙的登录网页是否打开。如果超时,错误处理将显示已连接,如果打开(或抛出证书错误,就像我们的情况一样),我们就知道未连接。

这个过程的大问题是,无论何时我们已经连接,应用程序挂起,直到网页超时。

任何输入都是非常受欢迎的,下面是我使用的代码:

    public static bool FirewallConnectivityStatus(string url)
    {
        try
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Proxy = null;
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            if (HttpStatusCode.OK == response.StatusCode)
            {
                response.Close();
                return false;
            }
            else
            {
                return true;
            }

        }
        catch (WebException Ex)
        {
            if (Ex.Status == WebExceptionStatus.TrustFailure)
            {
                return false;
            }
            else
            {
                return true;
            }
        }
    }

更新与此同时,我发现了一个套接字连接,它将允许我更好地通过IP而不是url创建此连接:c# -套接字登录到防火墙

c# -测试网页-等待超时

也许使用BackgroundWorker可以工作:

http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx

他们在那一页上有一个相当不错的例子。我以前从没想过要测试这个。我想不出一个简单的方法来检验它。好像以前也有人问过这个问题:

c# API测试网络适配器是否被防火墙

至少后台工作线程可以让你的程序在等待超时时继续运行。这取决于你是否可以让应用程序在没有答案的情况下继续测试。

如何减少超时时间?http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.timeout.aspx