我创建了一个使用 HTTPWebRequest 调用 API(返回 JSON)的 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();
}
}
当请求的服务器出现故障时,是否有“中断”请求?我曾尝试使用 webbrowser 调用 API 服务器,一段时间后断开它并返回错误给网页。