我在带有计时器的函数内部使用 httpwebrequest.getresponse()。定时器每隔几秒调用一次这个函数。但是,有时 Web 服务器由于请求和响应快速而拒绝响应,因为计时器。
我需要确保该函数使用计时器继续执行并且正确处理异常。
或者
为计时器内的函数处理 http Web 请求和 Web 响应的最佳方法是什么?
以通常的方式处理异常,然后呢?
try {
// Send your request
} catch(WebException ex) {
// It failed
}
while(response==null)
{
httpWebRequest = (HttpWebRequest)WebRequest.Create(sURL + param);
httpWebRequest.Method = WebRequestMethods.Http.Post;
httpWebRequest.Accept = "application/xml";
httpWebRequest.ContentLength = 0;
try
{
response = (HttpWebResponse)httpWebRequest.GetResponse();
if (response.StatusCode == HttpStatusCode.OK && response != null)
{
streamReader = new StreamReader(response.GetResponseStream());
doc = XDocument.Load(streamReader);
break;
}
}
catch (WebException exx)
{
Console.WriteLine("Trying to reconnect with Web Server");
Thread.Sleep(2000);
}
}