title: How to compress a HttpWebRequest POST
body: <p>I am trying to post data to server that accepts compressed data. The code below works just fine, but it is uncompressed.  I have not worked with compression or Gzip beofre, so any help is appriciated. </p>
  
  <pre><code>HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest;
    request.Timeout = 600000;
    request.Method = verb;  // POST    
    request.Accept = "text/xml";
  
    if (!string.IsNullOrEmpty(data))
    {
      request.ContentType = "text/xml";        
  
      byte[] byteData = UTF8Encoding.UTF8.GetBytes(data);
      request.ContentLength = byteData.Length;       
  
      // Here is where I need to compress the above byte array using GZipStream
  
      using (Stream postStream = request.GetRequestStream())
      {
        postStream.Write(byteData, 0, byteData.Length);         
      }
    }      
  
    XmlDocument xmlDoc = new XmlDocument();
    HttpWebResponse response = null;
    StreamReader reader = null;
    try
    {
      response = request.GetResponse() as HttpWebResponse;
      reader = new StreamReader(response.GetResponseStream());
      xmlDoc.LoadXml(reader.ReadToEnd());
    }
  </code></pre>
  
  <p>Do I gzip the entire byte array?  Do I need to add other headers or remove the one that is already there?</p>
  
  <p>Thanks!</p>
  
  <p>-Scott</p>