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# -套接字登录到防火墙
也许使用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