मैं अपने स्वयं के http सर्वर (मैं आईआईएस का उपयोग नहीं करता) के लिए एचटीपी लिस्टनर का उपयोग करता हूं। मैं gzip संपीड़न के आधार पर अपना OutputStream सेक करना चाहते हैं:सी # एचटीपी लिस्टनर प्रतिक्रिया + जीजेपीस्ट्रीम
byte[] refBuffer = Encoding.UTF8.GetBytes(...some data source...);
var varByteStream = new MemoryStream(refBuffer);
System.IO.Compression.GZipStream refGZipStream = new GZipStream(varByteStream, CompressionMode.Compress, false);
refGZipStream.BaseStream.CopyTo(refHttpListenerContext.Response.OutputStream);
refHttpListenerContext.Response.AddHeader("Content-Encoding", "gzip");
लेकिन मैं क्रोम में त्रुटि मिल रही है:
ERR_CONTENT_DECODING_FAILED
अगर मैं AddHeader निकालें, तब यह काम करता है, लेकिन के आकार प्रतिक्रिया संपीड़ित नहीं लग रहा है। मैं क्या गलत कर रहा हूं?
हेडर की वजह से कुछ संपीड़ित नहीं होना असंभव है, यह देखते हुए कि आप वास्तव में संपीड़ित सामग्री को स्पष्ट रूप से लिख रहे हैं। क्या आप वाकई क्रोम को फाइल के * डिकंप्रेस्ड * आकार नहीं दे रहे हैं? – Ryan
@minitech, अच्छे प्रश्न !!! मैं यातायात के वास्तविक आकार की जांच करने की कोशिश कर रहा हूँ। – Edward83