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

  • Bennythecoder

    Bennythecode

    25 Mart 2008
  • schmittastic

    schmittastic

    9 EYLÜL 2009
  • Tek Syndicate

    Tek Syndicat

    23 Temmuz 2008