我有一个非常简单的问题。我正在使用HTTP POST将文件上传到服务器。问题在于,当连接超时时,我需要特别处理,并在超时后添加一定的等待算法以缓解服务器的压力。
我的代码非常简单:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("SomeURI");
request.Method = "POST";
request.ContentType = "application/octet-stream";
request.KeepAlive = true;
request.Accept = "*/*";
request.Timeout = 300000;
request.AllowWriteStreamBuffering = false;
try
{
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
WebHeaderCollection headers = response.Headers;
using (Stream Answer = response.GetResponseStream())
{
// Handle.
}
}
}
catch (WebException e)
{
if (Timeout_exception)
{
//Handle timeout exception
}
}
由于文件读取代码不是我们关心的问题,我省略了它。现在我需要确保一旦抛出 WebException 异常,我会筛选异常以查看它是否确实是超时异常。我考虑通过比较异常消息来判断,但我不确定这是否是正确的方法,因为该应用程序是商业应用程序,我担心消息在不同语言之间会有所变化。而且我应该寻找什么样的消息。
有什么建议吗?