2
我已經看了很多Q &的作爲圍繞這個問題,並得到了在那裏我用下面的代碼,以獲得從給定URI的字節數點:現在爲什麼HttpWebResponse嘗試在Content-Encoding爲空時使用GZip解壓縮流?
var request = (HttpWebRequest)WebRequest.Create(uri);
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
var response = request.GetResponse();
var stream = response.GetResponseStream();
if (stream != null)
{
var buffer = new byte[4097];
var memoryStream = new MemoryStream();
do
{
var count = stream.Read(buffer, 0, buffer.Length);
memoryStream.Write(buffer, 0, count);
if (count == 0)
break;
} while (true);
return memoryStream.ToArray();
}
response.Close();
return null;
,一定URI(指向一個文件),當調試時,我發現web響應的'Content-Encoding'標題等於nothing(「」),但是當試圖從流中讀取時,它會拋出一個異常:
System.IO.InvalidDataException:GZip標頭中的幻數不正確。確保你傳入一個GZip流。
當開發工具調試相同的URI我得到這個在響應報頭:
內容編碼:gzip,緊縮
所以,我真的不知道會發生什麼。
有關如何避免此異常併成功讀取文件字節的任何線索和想法?
謝謝!