title: HttpWebRequest timeout handling
body: <p>I have a really simple question. I am uploading files to a server using HTTP POST. The thing is I need to specially handle connection timeouts and add a bit of a waiting algorithm after a timeout has occurred to relive the server.</p>
  
  <p>My code is pretty simple: </p>
  
  <pre><code>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
      }
  }
  </code></pre>
  
  <p>I omitted the file reading code as it is not our concern. Now I need to make sure that once a WebException is thrown, I filter the exception to see if it is indeed a timeout exception. I thought of comparing against the exception message yet I am not sure if this is the right way since the application in question is a commercial app and I am afraid that the message varies between different languages. And what message should I be looking for.</p>
  
  <p>Any suggestions?</p>