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

  • Chuck Testa

    Chuck Testa

    14 AĞUSTOS 2011
  • Learn Math Tutorials

    Learn Math T

    20 Kasım 2011
  • Video-Tutorials.Net

    Video-Tutori

    15 Mart 2011