title: request.GetResponse gives always a Timeout
body: <p>I made a Function for a program, which does work when the Request Type is <code>GET</code>, if it is <code>POST</code>, it always produces a Timeout Exception(and the timeout of 50s wasnt reached) on the Line <code>HttpWebResponse response = (HttpWebResponse)request.GetResponse();</code>
  <br>I tried many things, but I doesnt found out why, may someone here know it.
  <br><br>
  <strong>Edit: Got it to work, if someone is interested: <a href="https://gist.github.com/4347248">https://gist.github.com/4347248</a></strong>
  <br><br>
  Any help will be greatly appreciated.
  <br> <br>
  My Code is:</p>
  
  <pre><code>public ResRequest request(string URL, RequestType typ, CookieCollection cookies, string postdata ="", int timeout= 50000)
      {
          byte[] data;
          Stream req;
          Stream resp;
  
          HttpWebRequest request = WebRequest.Create(URL) as HttpWebRequest;
          request.Timeout = timeout;
          request.ContinueTimeout = timeout;
          request.ReadWriteTimeout = timeout;
          request.Proxy = new WebProxy("127.0.0.1", 8118);
          request.Headers.Add(HttpRequestHeader.AcceptLanguage, "de");
          request.Headers.Add("UA-CPU", "x86");
  
  
          request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
          request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618) ";
          request.CookieContainer = new CookieContainer();
          request.CookieContainer.Add(cookies);
          if (typ == RequestType.POST)
          {
              data = System.Text.Encoding.Default.GetBytes(postdata);
              request.Method = "POST";
              request.ContentType = "application/x-www-form-urlencoded";
              request.ContentLength = data.Length;
              req = request.GetRequestStream();//after a few tries this produced a Timeout error
              req.Write(data, 0, data.Length);
              req.Close();
              HttpWebResponse response = (HttpWebResponse)request.GetResponse();//This line produces a Timeout Exception
              resp = response.GetResponseStream();
  
              if ((response.ContentEncoding.ToLower().Contains("gzip"))) 
              {
                  resp = new System.IO.Compression.GZipStream(resp, System.IO.Compression.CompressionMode.Decompress);
              } else if ((response.ContentEncoding.ToLower().Contains("deflate"))) {
                  resp = new System.IO.Compression.DeflateStream(resp, System.IO.Compression.CompressionMode.Decompress);
              }
  
              return new ResRequest() { result = new System.IO.StreamReader(resp, System.Text.Encoding.UTF8).ReadToEnd(), cookies = response.Cookies, cstring = cookiestring(response.Cookies) };
  
          }
          else
          {
              request.Method = "GET";
  
              HttpWebResponse response = (HttpWebResponse)request.GetResponse();
              resp = response.GetResponseStream();
  
              if ((response.ContentEncoding.ToLower().Contains("gzip")))
              {
                  resp = new System.IO.Compression.GZipStream(resp, System.IO.Compression.CompressionMode.Decompress);
              }
              else if ((response.ContentEncoding.ToLower().Contains("deflate")))
              {
                  resp = new System.IO.Compression.DeflateStream(resp, System.IO.Compression.CompressionMode.Decompress);
              }
  
              return new ResRequest() { result = new System.IO.StreamReader(resp, System.Text.Encoding.UTF8).ReadToEnd(), cookies = response.Cookies, cstring = cookiestring(response.Cookies) };
          }
  
      }
  </code></pre>