SORU
8 Mayıs 2009, Cuma


HttpWebRequest Ve Yerel GZip Sıkıştırma

Gzip sıkıştırma ile ilgili bir sayfa isterken aşağıdaki hataları çok alıyorum:

Sistem.IO.İnvalidDataException: GZip altbilgi CRC eşleşmiyor Bu sıkıştırılmış hesaplanan CRC veri

Yerel GZipStream sıkıştırmak için kullanıyorum ve bu ele bakarak. Unutmayın ki orada geçici bir çözüm bu ya da başka bir GZip Kütüphanesi (özgür?) adresleme için. bu sorunu düzgün bir şekilde idare edecek?

ContentEncoding GZİP olduğunu webResponse doğrulamaya devam ediyorum

Güncelleme 5/11 Basitleştirilmiş bir snippit

//Caller
public void SOSampleGet(string url) 
{
    // Initialize the WebRequest.
    webRequest = (HttpWebRequest)WebRequest.Create(url);
    webRequest.Method = WebRequestMethods.Http.Get;
    webRequest.KeepAlive = true;
    webRequest.Accept = "text/html,application/xhtml xml,application/xml;q=0.9,*/*;q=0.8";
    webRequest.Headers.Add("Accept-Encoding", "gzip,deflate");
    webRequest.Referer = WebUtil.GetDomain(url);

    HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();    

    using (Stream stream = GetStreamForResponse(webResponse, READTIMEOUT_CONST))
    {
        //use stream
    }
}

//Method
private static Stream GetStreamForResponse(HttpWebResponse webResponse, int readTimeOut)
{
    Stream stream;
    switch (webResponse.ContentEncoding.ToUpperInvariant())
    {
        case "GZIP":
            stream = new GZipStream(webResponse.GetResponseStream(), CompressionMode.Decompress);
            break;
        case "DEFLATE":
            stream = new DeflateStream(webResponse.GetResponseStream(), CompressionMode.Decompress);
            break;

        default:
            stream = webResponse.GetResponseStream();
            stream.ReadTimeout = readTimeOut;
            break;
        }    
    return stream;
}

CEVAP
15 EKİM 2011, CUMARTESİ


Ne webrequest AutomaticDecompression Özelliği beri mevcut .net 2? Sadece ekleyin:

webRequest.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

Ayrıca,kodlama başlık kabul gzip deflate ekler.

http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.automaticdecompression.aspx bkz

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • K-391

    K-391

    23 EKİM 2012
  • Major FX

    Major FX

    6 HAZİRAN 2012
  • Michelle Phan

    Michelle Pha

    18 Temmuz 2006