Как сжать POST HttpWebRequest

Я пытаюсь отправить данные на сервер, который принимает сжатые данные. Приведенный ниже код работает нормально, но без сжатия. Я еще не работал со сжатием или Gzip, поэтому любая помощь нужна.

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());
  }

Сжать ли я весь массив байтов? Мне нужно добавить другие заголовки или удалить тот, который уже есть?

Спасибо!

-Scott

14
задан Scott 11 November 2010 в 04:22
поделиться