网络返回解析response.characterset iso-8859-1 gzip 解压

xiaoxiao2021-02-28  215

最近解析网页 发现网络返回解析  response.characterset iso-8859-1 gzip 解压 报错 自己记录下 .  不要采用 : StreamReader reader = new StreamReader(response_stream, Encoding.GetEncoding("gb2312"));  解压gzip流会报错:System.ArgumentException:“流不可读。”  正确方法: HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream response_stream = response.GetResponseStream(); int count = (int)response.ContentLength; int offset = 0; byte[] buf = new byte[count]; while (count > 0) //读取返回数据 { int n = response_stream.Read(buf, offset, count); if (n == 0) break; count -= n; offset += n; } request_stream.Close(); response.Close(); System.IO.StringReader srr=DeCompress(buf); string srcString1 = srr.ReadToEnd();  ///转压缩的Byte   public System.IO.StringReader DeCompress(byte[] str)         {             System.IO.MemoryStream stream = new System.IO.MemoryStream();             stream.Write(str, 0, str.Length);             stream.Position = 0;             GZipStream zip = new GZipStream(stream, CompressionMode.Decompress);             System.IO.StreamReader rd = new System.IO.StreamReader(zip);             return new System.IO.StringReader(rd.ReadToEnd());         } 
转载请注明原文地址: https://www.6miu.com/read-18643.html

最新回复(0)