zoukankan      html  css  js  c++  java
  • C#使用Gzip解压缩完整读取网页内容

    using System;
    using System.Threading;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.IO.Compression;
    using System.IO;
    using System.Web;
    using System.Net;
     
    class Test
    {
        static void Main()
        {
            string url = "http://www.cnblogs.com/waw/";
            getHtml1(url);
            getHtml2(url);
            Console.ReadKey();
        }
     
        private static void getHtml1(string url)
        {
            StringBuilder s = new StringBuilder(102400);
            WebClient wr = new WebClient();
            wr.Headers[HttpRequestHeader.AcceptEncoding] = "gzip, deflate";
            byte[] buffer = wr.DownloadData(url);
            GZipStream g = new GZipStream((Stream)(new MemoryStream(buffer)), CompressionMode.Decompress);
            byte[] d = new byte[20480];
            int l = g.Read(d, 0, 20480);
            while (l > 0)
            {
                s.Append(Encoding.Default.GetString(d, 0, l));
                l = g.Read(d, 0, 20480);
            }
            Console.Write(s.ToString() + "/n/n/n" + s.Length);
     
        }
     
        private static void getHtml2(string url)
        {
            StringBuilder s = new StringBuilder(102400);
            HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url);
            wr.Headers[HttpRequestHeader.AcceptEncoding] = "gzip, deflate";
            HttpWebResponse response = (HttpWebResponse)wr.GetResponse();
            head(response);
            GZipStream g = new GZipStream(response.GetResponseStream(), CompressionMode.Decompress);
            byte[] d = new byte[20480];
            int l = g.Read(d, 0, 20480);
            while (l > 0)
            {
                s.Append(Encoding.Default.GetString(d, 0, l));
                l = g.Read(d, 0, 20480);
            }
            Console.Write(s.ToString() + "/n/n/n" + s.Length);
        }
     
        private static void head(HttpWebResponse r)
        {
            string[] keys = r.Headers.AllKeys;
            for (int i = 0; i < keys.Length; ++i)
            {
                Console.WriteLine(keys[i] + "   " + r.Headers[keys[i]]);
            }
        }
    }
  • 相关阅读:
    ubuntu安装后做得几件事情 【robby_chan】
    malloc函数的一种简单的原理性实现[转]
    了解B树 B+树
    win下格式转为utf8 编码 转码
    log4j2与slf4j日志桥接
    java获取当前行数
    java获取服务器ip地址解决linux上为127.0.0.1的问题
    log4j2的基本使用
    navicator使用之mysql
    log4j与log4j2日志文件的操作
  • 原文地址:https://www.cnblogs.com/waw/p/3245284.html
Copyright © 2011-2022 走看看