HTTPWebRequest を使用して (JSON を返す) API を呼び出す Windows サービスを作成しました。
API は、「配信」するものがあるまで何も返しません。そのため、タイムアウトを非常に高く設定し、応答を受信するまで要求を待機させます。
問題は、API を実行しているサーバーをオフまたは切断することをテストするときです。HTTPWebRequest はリクエストを停止しません。そのため、API サーバーがダウンしたかどうかはわかりません。
リクエストコード:
HttpWebRequest Request = (HttpWebRequest)HttpWebRequest.Create(Url);
Request.Method = "POST";
Request.ContentType = "application/x-www-form-urlencoded";
Request.ContentLength = PostData.Length;
Request.Timeout = Timeout;
Request.KeepAlive = true;
using (StreamWriter sw = new StreamWriter(Request.GetRequestStream()))
{
sw.Write(PostData);
}
using (HttpWebResponse Response = (HttpWebResponse)Request.GetResponse())
{
using (StreamReader sr = new StreamReader(Response.GetResponseStream()))
{
ResponseText = sr.ReadToEnd();
}
}
要求されたサーバーがダウンしたときに要求を「中断」する方法はありますか? Web ブラウザーを使用して API サーバーを呼び出してみましたが、しばらくして切断すると、Web ページにエラーが返されます。