以前は、GETリクエストを送信して特定のWebサイトにアクセスできるかどうかをテストする小さなVBScriptを持っていました。スクリプト自体は非常にシンプルで、必要なことはすべて実行しました。
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#アプリでも同じ機能を使用したいのですが、そうすれば、少なくとも最小限の情報をログに書き込んで、それに応じてコンピューターを動作させることができます。何か案は?