public static string GetDataFromUrlGZip(string url, Encoding encoding)
{
WebRequest request = WebRequest.Create(url);
//request.Timeout = 5000;
request.Method = "GET";
request.ContentType = "text/html; charset=gb2312";
string result;
using (WebResponse response = request.GetResponse())
{
Stream s = response.GetResponseStream();
using (StreamReader sr = new StreamReader(s, encoding))
{
result = sr.ReadToEnd();
}
}
byte[] resultbytes = UnicodeEncoding.ASCII.GetBytes(result);
resultbytes = Compress(resultbytes);
string resultGZip = UnicodeEncoding.ASCII.GetString(resultbytes);
byte[] rbs = UnicodeEncoding.ASCII.GetBytes(resultGZip);
rbs = DeCompress(rbs);
string results = UnicodeEncoding.ASCII.GetString(rbs);
return result;
}
internal static byte[] Compress(byte[] data)
{
MemoryStream stream = new MemoryStream();
GZipStream gZipStream = new GZipStream(stream, CompressionMode.Compress);
gZipStream.Write(data, 0, data.Length);
//....暂时先在注释的位置卖点关子
return stream.ToArray();
}
internal static byte[] DeCompress(byte[] data)
{
MemoryStream stream = new MemoryStream();
GZipStream gZipStream = new GZipStream(new MemoryStream(data), CompressionMode.Decompress);
byte[] bytes = new byte[4096];
int n;
while ((n = gZipStream.Read(bytes, 0, bytes.Length)) != 0)
{
stream.Write(bytes, 0, n);
}
return stream.ToArray();
}
GZip流压缩、解压
最新推荐文章于 2022-11-16 10:38:52 发布