我以前有一个小型 VBScript,它可以通过发送 GET 请求来测试是否可以访问特定网站。脚本本身非常简单,并且做了我需要的一切:
Function GETRequest(URL) 'Sends a GET http request to a specific URL
Dim objHttpRequest
Set objHttpRequest = CreateObject("MSXML2.XMLHTTP.3.0")
objHttpRequest.Open "GET", URL, False
On Error Resume Next 'Error checking in case access is denied
objHttpRequest.Send
GETRequest = objHttpRequest.Status
End Function
我现在想在扩展的 C# 应用程序中包含这种功能。但是,我无法获得与之前脚本提供的相同的结果。
使用类似于我在下面发布的代码可以获得正确的结果,但如果我的网络连接失败,则无法运行。
public static void GETRequest()
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://url");
request.Method = "GET";
HttpStatusCode status;
HttpWebResponse response;
try
{
response = (HttpWebResponse)request.GetResponse();
status = response.StatusCode;
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(status);
}
catch (WebException e)
{
status = ((HttpWebResponse)e.Response).StatusCode;
Console.WriteLine(status);
}
}
但正如我所说,我需要知道该站点是否可以访问,无论原因是什么:门户可能已关闭,或者问题可能出在尝试访问它的 PC 端。不管怎样:我不在乎。
当我在脚本中使用时,如果遇到网络问题,MSXML2.XMLHTTP.3.0
我能够获得从12000到12156的值。我想在我的 C# 应用程序中拥有相同的功能,这样我至少可以将最少的信息写入日志并让计算机采取相应的行动。有任何想法吗?